### 模块 OSD(rados): 核心,用于集群中数据与对象的存储,处理对象的复制,恢复,再均衡等 MON: 监控集群状态(奇数个), 维护集群clustermap,保证数据一致性 RGW(radosgw): 对象存储需要 MDS: 文件系统存储需要 MGR: 监控 ### 配置文件 /etc/ceph.conf ## mon及密码等, 客户端连接密码可以不配置 /etc/ceph/ceph.client.admin.keyring ## 客户端密码文件 * 时间需要同步 ### 安装ceph-deploy ```shell # 需要在生成免密登录服务器上执行 yum -y install ceph-deploy # 帮助 ceph-deploy mon --help ``` ### 创建节点生成配置文件 ```shell ceph-deploy new node1 node2 node3 ``` ### 安装ceph ```shell yum -y install ceph-mon ceph-osd ceph-mds ceph-radosgw # ceph-deploy也可以安装 ceph-deploy install node1 node2 node3 ``` ### 初始化节点(配置文件传输到节点,启动mon) ```shell ceph-deploy mon create-initial # 或以下 ceph-deploy mon add node1 ceph-deploy mon add node2 ceph-deploy mon add node3 ``` ### 查状态 ```shell ceph -s ``` ### 创建osd ```shell # 需要缓存盘用于缓存写入数据 # 若全部使用,可以使用ceph-deploy做,若有不同分区,需自行分区 parted /dev/vdb mklabel gpt parted /dev/vdb mkpart primary 1 50% parted /dev/vdb mkpart 50% 100% # 修改所属用户与组,使ceph有权限写入 chown ceph:ceph /dev/vdb1 chown ceph:ceph /dev/vdb2 # 以上操作只能保证当前有效,重启会恢复。以下操作可以永久生效 cat >> /etc/udev/rules.d/70-vdb.rules < --image-feature layering --size 10g rdb create / --image-feature layering --size 10g # 查看 rbd list rbd info # 扩缩 # --allow-shrink: 缩减需要添加 rbd resize --rize 7G --allow-shrink ``` ## 客户端访问 ```shell # 客户端安装 yum install -y ceph-common # 配置文件及密码 # 从集群中复制相应文件 /etc/ceph/ceph.conf /etc/ceph/ceph.client.admin.keyring # 添加集群 rbd map # 查看本地磁盘 # 本地多了rbd*,可以正常格式化挂载操作 lsblk # 查看image使用情况 rbd showmapped # 查看image rbd image list ``` ## 快照 ceph多副本,保证osd异常时,数据不丢失 快照防止误操作 ```shell # 查看image快照 rbd snap ls # 创建快照 rdb snap creat image --snap # 操作数据,如删除 # 卸载挂载目录(挂载地方) umount /mnt # 还原数据(恢复快照) rbd snap rollback --snap # 重新挂载目录即可恢复数据 ``` ## 克隆 ```shell # 使用快照克隆比较快 # protect: 保护snap,防止被删 rbd snap protect --snap # 如下命令会删除失败 rbd snap rm --snap # 克隆image rbd clone --snap image-clone --image-feature layering # 查看父子image rbd info # 去掉父子关系, 使复制后的image独立工作,需要时间 rbd flatten # 快照删除 rbd snap unprotect --snap rbd snap rm --snap ``` ## 本地去掉盘 ```shell umount /mnt rbd unmap ``` ## 虚拟机中使用ceph ```shell # ceph需要认证 # 安装虚拟机的服务器中,需要配置如下文件 cat > secret.xml < client-admin secret EOF # 创建 virsh secret-define secret.xml virsh secret-list # 绑定密码 # secret-uuid为以上命令查询所得 # /etc/ceph/ceph.client.admin.keyring中key后的密码 virsh secret-set-value --secret --base64 # 修改虚拟机xml文件 # 虚拟机配置文件/etc/libvirt/qemu/xxx.xml # 虚拟机数据文件/var/lib/libvirt/images/xxx.qcow2 # xxx为虚拟机名字 virsh list --all virsh edit xxx # devices下添加, 注意修改uuid/pool-name/image-name/vdb ``` ## 文件存储 ```shell # mds服务器 yum install -y ceph-mds # admin # 创建mds服务 ceph-deploy mds create node4 # 同步配置文件及key ceph-deploy admin node4 # 创建存储池 # 创建存储池,用于存储block(块),128PG # pg为2的次方,推荐64或128 ceph osd pool create 128 # 创建存储池,用于存放inode.128PG ceph osd poll create 128 # 查看mds状态 ceph mds stat # 创建文件系统 ceph fs new # 查看文件系统 ceph ls fs # 挂载 mount -t ceph :6789:/ /mnt -o name=admin,secret= ``` ## 对象存储 ```shell # admin ceph-deploy install --rgw node5 # 以下命令一样 yum install -y ceph-radosgw ceph-deploy rgw create node5 # 修改服务端口,若需要 cat >> /etc/ceph.conf <