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状态

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