本例软件版本:CentOS 7.6,内核 5.1.3(内核至少4.15+),ceph 14.2.1
1.参考资料
http://docs.ceph.com/docs/master/
https://blog.csdn.net/wylfengyujiancheng/article/details/78461801
http://www.cnblogs.com/luohaixian/p/8087591.html
https://www.jianshu.com/p/c22ff79c4452
https://blog.csdn.net/dengxiafubi/article/details/72957402
https://blog.csdn.net/reblue520/article/details/52039353
http://www.d-kai.me/ceph%E7%A7%91%E6%99%AE/
https://blog.csdn.net/signmem/article/details/78602374
http://www.cnblogs.com/royaljames/p/9807532.html
https://cloud.tencent.com/developer/article/1177975
http://blog.51niux.com/?id=161
2.增加ceph的yum源
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
编辑ceph库 /etc/yum.repos.d/ceph.repo
[Ceph]
name=Ceph packages for $basearch
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[Ceph-noarch]
name=Ceph noarch packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/noarch
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
[ceph-source]
name=Ceph source packages
baseurl=https://mirrors.aliyun.com/ceph/rpm-nautilus/el7/SRPMS
enabled=1
gpgcheck=0
type=rpm-md
gpgkey=https://mirrors.aliyun.com/ceph/keys/release.asc
priority=1
yum clean all
yum install -y ceph-deploy
3.安装NTP服务
ceph需要保证时间同步,需要安装ntp服务,这个先自己百度一下吧,很简单,我有时间了把ntp的文档也发出来
4.修改/etc/hosts文件
修改 /etc/hosts,每台服务器都配置别名
10.0.67.15 node1
10.0.67.19 node2
10.0.67.21 node3
名字一般可以用机器的hostname,但是不要用FQDN(也就是全域名,比如有些机器的全域名是node1.example.com).这时候hostname -s得到的是node1.建议主机名不包含域,例如设置成node1
5.创建用户
###安装ssh服务###
yum install openssh-server
###在各 Ceph 节点创建新用户###
useradd -d /home/cephuser -m cephuser
###自己设置一个密码,记好,会经常用###
passwd cephuser
###确保各 Ceph 节点上新创建的用户都有 sudo 权限###
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sudo chmod 0440 /etc/sudoers.d/cephuser
修改 ceph-deploy 管理节点上的 ~/.ssh/config 文件,这样 ceph-deploy 就能用你所建的用户名登录 Ceph 节点了,而无需每次执行 ceph-deploy 都要指定 --username {username} .这样做同时也简化了 ssh 和 scp 的用法.把 {username} 替换成你创建的用户名.
Host node1
Hostname node1
User cephuser
Host node2
Hostname node2
User cephuser
Host node3
Hostname node3
User cephuser
###完成所有的配置之后,可以在其他节点上也安装ceph-deploy,把/root/.ssh,/data/my-cluster整体拷贝到备用机,避免管理机器宕机###
6.关闭防火墙和selinux
7.安装ceph-deploy安装
###创建一个配置文件目录,以后ceph-deploy的操作都要在这个目录下执行###
mkdir my-cluster
cd my-cluster
ceph-deploy会把文件输出到当前目录,必须在my-cluster目录下行执行ceph-deploy命令
8.安装ceph集群
###在默认的监控节点(mon)创建集群,并指定网络域,就是ceph服务器的网段###
ceph-deploy new node1 --public-network 10.0.67.0/24
###在所有节点上安装ceph###
ceph-deploy install node1 node2 node3
##初始化监控节点###
ceph-deploy mon create-initial
###在默认的mon节点上启动mgr###
ceph-deploy mgr create node1
###创建 osd ,osd映射到磁盘或者分区###
ceph-deploy osd create --data /dev/vda4 node1
ceph-deploy osd create --data /dev/vda4 node2
ceph-deploy osd create --data /dev/vda4 node3
###如果要使用cephfs,需要至少一个MDS服务实例###
ceph-deploy mds create node1
ceph-deploy mds create node2
ceph-deploy mds create node3
###查看mds###
ceph mds stat
###增加监控节点####
ceph-deploy mon add node2
ceph-deploy mon add node3
###增加和mon服务对应的mgr服务节点###
ceph-deploy mgr create node2
ceph-deploy mgr create node3
###若是出现异常,检查ecph.conf的public_network,一般是这个问题###
##推送配置文件###
#ceph-deploy --overwrite-conf config push node1 node2 node3
#ceph-deploy admin node1 node2 node3
###集群状态###
ceph -s
###查看osd的树信息###
ceph osd tree
###查看osd磁盘信息###
ceph osd df
查看各种Map的信息可以通过如下命令:ceph osd(mon/pg) dump
###查看集群mon节点状态###
ceph quorum_status --format json-pretty
9.卸载集群
如果在某些地方碰到麻烦,想从头再来,可以用下列命令清除配置:
ceph-deploy purge node1 node2 node3
ceph-deploy purgedata node1 node2 node3
ceph-deploy forgetkeys
rm -rf ceph*
重新安装之后,ceph.repo重新创建一下.
已经挂载的osd硬盘,ceph做了multipath(多路径),会出现/dev/vda4无法使用的情况,没有映射,也没有挂载,需要dmsetup remove
参考:https://blog.csdn.net/reblue520/article/details/52039353
###清除掉磁盘的GPT信息####
sgdisk --zap-all /dev/vda4
ll /dev/mapper/
dmsetup remove /dev/mapper/ceph--xxxxxx
10.升级
###先升级ceph-deploy工具###
yum install ceph-deploy python-pushy
###设置noout,防止升级过程中数据重平衡,升级完成后取消设置即可###
###set是集群参数,任意一个节点设置就行###
ceph osd set noout
###升级ceph版本###
#ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
ceph-deploy install --release nautilus node1 node2 node3
###取消noout设置###
ceph osd unset noout
###重启###
依次重启服务器,省的麻烦......
重启前一定要确保集群属于健康状态.
###查看状态###
ceph --version
ceph -s
ceph mon stat
11.pool,cephfs,rbd的日常操作,以后再补充