四台机器为例:
主机地址 主机名称 主机角色
192.168.100.30 ceph-admin admin
192.168.100.31 stor-01 mon, osd, mgr, mds
192.168.100.32 stor-02 mon, osd, mgr
192.168.100.33 stor-03 mon, osd, rgw
每台主机进行A记录的配置:
[root@server-0 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.100.30 ceph-admin
192.168.100.31 stor-01 mon-01 osd-01 mgr-01 mds
192.168.100.32 stor-02 mon-02 osd-02 mgr-02
192.168.100.33 stor-03 mon-03 osd-03 rgw
一、使各主机时钟同步(采用admin同步网络时钟,其他同步admin时钟)
管理节点:
# vim /etc/chrony.conf
其他节点:
# vim /etc/chrony.conf
重启服务:systemctl restart chronyd.service
统一执行date看时间是否统一
关闭防火墙等:
~]# systemctl stop firewalld.service
~]# systemctl stop iptables.service
~]# systemctl disable firewalld.service
~]# systemctl disable iptables.service
二、进行源的配置:
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# yum clean all
# yum makecache
在所有节点下生成mimic相关配置仓库:
# rpm -ivh https://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
三、在各节点以管理员的身份创建一个专用于ceph-deploy的特定用户账号:
# useradd cephadm
# echo "123456" | passwd --stdin cephadm
给予用户cephadm无密码运行sudo命令的权限
# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm
# chmod 0440 /etc/sudoers.d/cephadm
ceph-deploy命令不支持运行中途的密码输入,因此,必须在管理节点(ceph-admin.magedu.com)上生成SSH密
钥并将其公钥分发至Ceph集群的各节点上。下面直接以cephadm用户的身份生成SSH密钥对:
~]$ su cephadm
~]$ cd ~
~]$ ssh-keygen -t rsa -P ""
而后即可把公钥拷贝到各Ceph节点:
~]$ ssh-copy-id -i .ssh/id_rsa.pub cephadm@stor-01
~]$ ssh-copy-id -i .ssh/id_rsa.pub cephadm@stor-02
~]$ ssh-copy-id -i .ssh/id_rsa.pub cephadm@stor-03
四、在管理节点安装ceph-deploy
# yum install ceph-deploy python-setuptools python2-subprocess32
五、部署RADOS存储集群
初始化RADOS集群
1.首先在管理节点上以cephadm用户创建集群相关的配置文件目录:
~]$ mkdir ceph-cluster
~]$ cd ceph-cluster
2. 初始化第一个MON节点,准备创建集群:
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy new stor-01
3. 编辑生成ceph.conf配置文件,在[global]配置段中设置Ceph集群面向客户端通信时使用的IP地址所在的网络,即公网网络地址:
4. 安装Ceph集群
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy install ceph-admin stor-01 stor-02 stor-03
提示:若需要在集群各节点独立安装ceph程序包,其方法如下:
# yum install -y https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-0.el7.noarch.rpm
# yum install ceph ceph-radosgw
5. 配置初始MON节点,并收集所有密钥:
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy mon create-initia
6. 把配置文件和admin密钥拷贝Ceph集群各节点,以免得每次执行”ceph“命令行时不得不明确指定MON节点地址
和ceph.client.admin.keyring:
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy admin stor-01 stor-02 stor-03
而后在Ceph集群中需要运行ceph命令的的节点上(或所有节点上)以root用户的身份设定用户cephadm能够读
取/etc/ceph/ceph.client.admin.keyring文件:
~]$ setfacl -m u:cephadm:r /etc/ceph/ceph.client.admin.keyring
7. 配置Manager节点,启动ceph-mgr进程(仅Luminious+版本):
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy mgr create stor01
8. 在Ceph集群内的节点上以cephadm用户的身份运行如下命令,测试集群的健康状态:
[cephadm@stor01 ~]$ ceph health
六、向RADOS集群添加OSD
列出并擦净磁盘
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy disk zap stor-01 /dev/sdb
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy disk zap stor-02 /dev/sdb
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy disk zap stor-03 /dev/sdb
添加OSD
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy osd create stor-01 --data /dev/sdb
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy osd create stor-02 --data /dev/sdb
[cephadm@ceph-admin ceph-cluster]$ ceph-deploy osd create stor-03 --data /dev/sdb
管理员也可以使用ceph命令查看OSD的相关信息:
~]$ ceph osd stat
3 osds: 3 up, 3 in; epoch: e15
从RADOS集群中移除OSD的方法
1. 停用设备:ceph osd out {osd-num}
2. 停止进程:sudo systemctl stop ceph-osd@{osd-num}
3. 移除设备:ceph osd purge {id} --yes-i-really-mean-it
测试上传/下载数据对象
~]$ ceph osd pool create mypool 16
pool 'mypool' created
~]$ rados put issue /etc/issue --pool=mypool
~]$ rados ls --pool=mypool
issue
ceph osd map”命令可以获取到存储池中数据对象的具体位置信息:
]$ ceph osd map mypool issue
osdmap e26 pool 'mypool' (1) object 'issue' -> pg 1.651f88da (1.a) -> up ([2,1,0], p2)
acting ([2,1,0], p2)
删除数据对象,“rados rm”命令是较为常用的一种方式:
~]$ rados rm issue --pool=mypool
删除存储池命令存在数据丢失的风险,Ceph于是默认禁止此类操作。管理员需要在ceph.conf配置文件中启用支持删
除存储池的操作后,方可使用类似如下命令删除存储池。
~]$ ceph osd pool rm mypool mypool --yes-i-really-really-mean-it