前期准备: 1.ceph用户配置—每个节点上执行 ceph-deploy配置集群时以ceph用户的权限进行 新建用户: useradd ceph passwd ceph 密码:87##IGsef 增加ceph的sudo权限 echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph sudo chmod 0440 /etc/sudoers.d/ceph 2.ssh免密码登陆—每个节点 yum install openssh-server -y su - ceph ssh-keygen 生成密钥 将密钥复制到要登陆的服务器 ssh-copy-id "-p $port" ceph@ceph01 ssh-copy-id "-p $port" ceph@ceph02 ssh-copy-id "-p $port" ceph@ceph03 ssh-copy-id "-p $port" ceph@ceph04 3、 格式化挂载磁盘 fdisk /dev/sdb p n p 1 w mkfs.xfs /dev/sdb 创建挂载点 mkdir /opt/ceph-sdb mount /dev/sdb1 /opt/ceph-sdb 把目录的所有者改成ceph,否则配置集群过程中后出错 chown -R ceph.ceph /opt/ceph-sdb 4、 NTP同步时间 yum install ntpdate -y ntpdate timeserver 加入到crontab中,执行间隔不可过长 ceph安装: 1.yum源 设置好yum源,前提得看好ceph版本所支持的系统版本。默认情况下centos6已经不被最新版本支持。这里使用最新版本ceph-jewel, [ceph] name=Ceph packages for $basearch baseurl=https://download.ceph.com/rpm-jewel/el7/$basearch enabled=1 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-jewel/el7/noarch enabled=1 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc [ceph-source] name=Ceph source packages baseurl=https://download.ceph.com/rpm-jewel/el7/SRPMS enabled=0 priority=2 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc 上面内容保存到ceph.repo中 2.安装ceph软件: 不要使用ceph-deploy安装节点,容易出错。 yum install ceph-deploy -y yum -y install epel-release yum -y install ceph ceph-radosgw 配置集群: 功能: mon一个集群建议有3个点 osd 存储单元,最少两个 mds cephfs功能所必须的组件,官方建议每个集群有一个,但最新版本对cephfs方面有所增加,两个以上的mds可以实现自动切换,同时只有一个active状态,其他处于standby,active发生故障后,standby自动将状态切换成acitve。 1.新建一个集群 ceph-deploy new ceph01 ceph02 ceph03 ceph04 2.在节点上开启监控服务 ceph-deploy mon create ceph01 ceph02 ceph03 ceph04 3.收集所有节点的key ceph-deploy gatherkeys ceph01 ceph02 eph03 ceph04 4.增加osd节点 初始化: ceph-deploy osd prepare ceph01:/opt/ceph-sdb ceph02:/opt/ceph-sdb ceph03:/opt/ceph-sdb ceph04:/opt/ceph-sdb 激活: ceph-deploy osd activate ceph01:/opt/ceph-sdb ceph02:/opt/ceph-sdb ceph03:/opt/ceph-sdb ceph04:/opt/ceph-sdb 5.增加mds节点,cephfs必须的节点,创建两个,active--standby模式 ceph-deploy mds create ceph01 ceph02 创建元数据,必须执行 ceph osd pool create data 192 192 sudo ceph osd tree sudo ceph osd pool create data 192 192 sudo ceph osd pool create metadata 192 192 sudo ceph fs new cephfs metadata data 客户端使用 把ceph集群的ceph.conf和ceph.client.admin.keyring复制到客户端的/etc/ceph目录下 1.cephfs模式 挂载 mkdir /mnt/testceph/ mount -t ceph ceph01:6789:/ /mnt/testceph/ 2.使用rdb块挂载 centos7.2 内核支持rbd,但是官方不建议使用。这里为了简单,不对内核作任何操作。 创建一个镜像 echo "rbd_default_features = 3" >> /etc/ceph/ceph.conf #否则在3.10的内核下会报错,因为新版的一些特性3.10内核不支持 rbd create rbdtest --size 40960 rbd map rbdtest --name client.admin mkfs.xfs /dev/rbd0 挂载 mkdir /mnt/rbdtest mount /dev/rbd0 /mnt/rbdtest/ 有一个问题,不同的客户端在挂载同一个块的时候文件不能实时同步。本身不支持这个功能,umount && mount后会显示mount前块上所有的文件,一旦远端发生变化,仍然无法实时同步。实现这个功能只能是使用cephfs模式。 常用管理命令 1.集群状态 ceph -s 查看ceph状态 ceph -w 持续观察集群变动类似于tail -f 的功能 ceph osd stat osd状态 ceph osd tree osd树 ceph mon stat mon状态 ceph mds stat mds状态 2.osd故障操作 摘掉osd的命令如下,版本不同下面命令可能会有细微差异 osd_id=`ceph osd tree | grep down | grep osd | awk '{print $3}' | awk -F . '{print$2}'` ceph osd rm ${osd_id} ceph osd crush rm osd.${osd_id} ceph auth del osd.${osd_id} mkfs.xfs -f -i size=512 /dev/sd${i}1 mount -a chown -R ceph:ceph ${hostname}:/opt/ceph-sdb su - ceph ceph-deploy --overwrite-conf osd prepare ${hostname}:/opt/ceph-sdb ceph-deploy --overwrite-conf osd activate ${hostname}:/opt/ceph-sdb 3.rbd块的操作 rbd create img_name -s img_size ####创建 rbd map img_name ##映射 rbd ls 查看ceph默认资源池rbd里面的镜像 rbd info xxx.img 查看xxx.img的具体的具体信息 rbd rm xxx.img 删除xxx.img rbd cp aaa.img bbb.img 拷贝镜像aaa.img为bbb.img rbd rename aaa.img bbb.img 重命名aaa.img为bbb.img rbd import aaa.img 将本地的aaa.img导入ceph集群中 rbd export aaa.img 将ceph集群中aaa.img导出到本地 (责任编辑:IT) |