文章目錄
準備
操作系統: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}
關閉防火牆
更推薦的做法是,參考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