ceph-deploy在線安裝ceph(Ubuntu18)

準備

操作系統:ubuntu-18.04.4-desktop-amd64
硬件需求:未使用的磁盤,注意如果是虛擬磁盤,用固定大小盤,不然ceph-deploy osd create會出錯
官方文檔:https://ceph.readthedocs.io/en/latest/install/

安裝出錯重來方法

$ ceph-deploy purge {ceph-node} [{ceph-node}]
$ ceph-deploy purgedata {ceph-node} [{ceph-node}]
$ ceph-deploy forgetkeys
$ rm ceph.*

安裝ceph-deploy

#配置安裝源,這裏用了163的安裝源
$ wget -q -O- 'http://mirrors.163.com/ceph/keys/release.asc' | sudo apt-key add -
#直接訪問http://mirrors.163.com/ceph/可以看到很多版本,
#本人用了debian-15.2.3,注意替換相應版本
$ echo deb http://mirrors.163.com/ceph/debian-15.2.3/ \
	$(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
#確保/etc/apt/sources.list.d/ceph.list的內容如下,bionic應該和ubuntu版本有關
#deb http://mirrors.163.com/ceph/debian-15.2.3/ bionic main

#依賴python2.7,會自動安裝
$ sudo apt update
$ sudo apt install -y ceph-deploy

配置各節點的靜態IP和hosts

配置靜態IP直接百度(ubuntu18的server版和desktop版還有區別)

#配置hosts,本單機安裝,配置了一臺
$ sudo vim /etc/hosts
127.0.0.1		localhost
192.168.104.116	rtvm
#IP和主機名按實際配置

安裝chrony和openssh-server(所有節點)

#chrony同步時間
$ sudo apt install -y chrony 
#openssh-server
$ sudo apt install -y openssh-server

創建有sudo權限的用戶(所有節點)

本人用了裝系統時的用戶,沒有創建新用戶
下面命令的{username}替換成自己的用戶名

# 添加用戶,並置密碼
$ sudo useradd -d /home/{username} -m {username}
$ sudo passwd {username}

#給用戶sudo權限
$ echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username}
$ sudo chmod 0440 /etc/sudoers.d/{username}

免密登陸配置

#非sudo運行ssh-keygen,注意passphrase留空,見圖
$ ssh-keygen

#將祕鑰複製到所有節點上(自己也要給自己複製1次)
#記得替換{username}和rtvm(節點主機名,要在/etc/hosts中配置IP)
$ ssh-copy-id {username}@rtvm

#編輯~/.ssh/config,可以省去ceph-deploy的參數--username {username}
$ vim ~/.ssh/config
Host rtvm
   Hostname rtvm
   User rt
#本人單機,配了1個Host
#Host node2
#   Hostname node2
#   User {username}

passphrase留空

關閉防火牆

更推薦的做法是,參考ceph的REQUIRED PORTS打開相應端口

$ sudo ufw disable

安裝ceph集羣

創建集羣

#ceph-deploy new 後邊跟上所有需要集羣的主機名
#如ceph-deploy new 主機名1 主機名2 主機名3
#本人單機寫了一臺
#不需要sudo,rtvm是我的主機名(需要在/etc/hosts配置IP)
$ ceph-deploy new rtvm

#在當前目錄下會生成ceph.conf文件
#修改ceph.conf
#多網卡時,注意mon-host必須填公網ip,不要填私網
$ vim ceph.conf
[global]
mon-host = 公網IP

安裝包

#使用環境變量指定安裝源
#否則前面的安裝源配置會在ceph-deploy install時被ceph-deploy替換掉
$ export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
$ export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-15.2.3

#ceph-deploy install 後邊跟上所有的主機名
#如ceph-deploy install 主機名1 主機名2 主機名3
#ceph會自動吧相關包安裝到列出的主機中
$ ceph-deploy install rtvm

初始化mon和mgr節點

#初始化moniter節點,並生成keyring
$ ceph-deploy --overwrite-conf mon create-initial
#當前目錄下會生成各種keyring
#ceph.client.admin.keyring
#ceph.bootstrap-mgr.keyring
#ceph.bootstrap-osd.keyring
#ceph.bootstrap-mds.keyring
#ceph.bootstrap-rgw.keyring
#ceph.bootstrap-rbd.keyring
#ceph.bootstrap-rbd-mirror.keyring

#可以使用ceph-deploy admin將keyring複製到做爲管理節點的主機上
#命令可以跟多臺主機
ceph-deploy admin rtvm

#創建管理節點,命令可以跟多臺主機
#沒必要所有節點都改成管理節點
$ ceph-deploy mgr create rtvm

創建OSD

再次提醒,用於創建osd的磁盤,不要用可變的虛擬磁盤
因爲可變的虛擬磁盤沒放過數據的時候,ceph識別的大小爲0,無法通過ceph檢查

#在每臺主機上查看磁盤情況
$ sudo df -h
/dev/sda1 ... /

$ sudo lsblk
sda ... disk
  sda1 ... part /
sdb ... disk

$ sudo fdisk -l
/dev/sda
/dev/sdb

#從以上的3個命令的對比,找出未使用的盤/dev/sdb
#一次只能創建一臺主機的osd,多臺主機要調用多次ceph-deploy osd create
$ ceph-deploy osd create --data /dev/sdb rtvm

檢查ceph狀態

$ sudo ceph -s
#輸出如圖
#有個HEALTH_WARN
#    OSD count 1 < osd_pool_default_size 3
#因爲我只有1個OSD,但是默認副本數是3,所以報錯
#有3個以上OSD的情況下不會有這個提示
#解決方法時,把副本數設置成1
$ sudo vim /etc/ceph/ceph.conf
[global]
#配置
osd_pool_default_size=1
#重啓mgr服務
$ sudo systemctl restart ceph-mgr@rtvm

ceph狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章