本文档将指导你如何在CentOS 7上搭建Ceph共享存储。Ceph是一个高度可扩展的分布式存储系统,可提供对象、块和文件系统存储。下面是搭建Ceph集群的步骤。
在所有节点上执行以下命令:
sudo yum update -y sudo yum install -y epel-release sudo yum install -y python-pip
在所有节点上设置主机名:
sudo hostnamectl set-hostname mon-node sudo hostnamectl set-hostname osd-node1 sudo hostnamectl set-hostname osd-node2
在所有节点的/etc/hosts
文件中添加以下内容:
<mon-node-ip> mon-node <osd-node1-ip> osd-node1 <osd-node2-ip> osd-node2
在所有节点上执行以下命令:
sudo rpm -Uvh https://download.ceph.com/rpm-nautilus/el7/noarch/ceph-release-1-1.el7.noarch.rpm
在所有节点上执行以下命令:
sudo yum install -y ceph ceph-deploy
在MON节点上执行以下命令:
sudo ceph-deploy new mon-node
在MON节点的ceph.conf
文件中添加以下内容:
osd pool default size = 2 osd pool default min size = 1 osd pool default pg num = 128 osd pool default pgp num = 128
在MON节点上执行以下命令:
sudo ceph-deploy mon create-initial sudo ceph-deploy mgr create mon-node
在所有OSD节点上执行以下命令(将<osd-disk>
替换为要用于存储数据的磁盘):
sudo ceph-deploy osd create --data <osd-disk> osd-node1 sudo ceph-deploy osd create --data <osd-disk> osd-node2
在MON节点上执行以下命令:
sudo ceph-deploy admin mon-node osd-node1 osd-node2
在MON节点上执行以下命令:
sudo ceph health
如果一切正常,你会看到HEALTH_OK
的输出。
在MON节点上执行以下命令:
sudo ceph -s
输出将显示集群的详细信息,包括监视器、管理器、OSD和PG(Placement Group)的状态。
在MON节点上执行以下命令(将<pool-name>
替换为你选择的池名称):
sudo ceph osd pool create <pool-name> 128
在MON节点上执行以下命令:
sudo ceph osd lspools
输出将显示所有已创建的池及其ID。
在MON节点上执行以下命令(将<pool-name>
替换为你选择的池名称,将<image-name>
替换为你选择的映像名称,将<image-size>
替换为映像大小):
sudo rbd create <pool-name>/<image-name> --size <image-size> --image-feature layering
在MON节点上执行以下命令(将<pool-name>
替换为你选择的池名称):
sudo rbd ls <pool-name>
输出将显示所有已创建的RBD映像。
在MON节点上执行以下命令:
sudo ceph-deploy mds create mon-node
在MON节点上执行以下命令(将<pool-name>
替换为你选择的数据池和元数据池的名称):
sudo ceph osd pool create <data-pool-name> 128 sudo ceph osd pool create <metadata-pool-name> 128 sudo ceph fs new cephfs <metadata-pool-name> <data-pool-name>
在客户端节点上安装Ceph客户端:
sudo yum install -y ceph-fuse
挂载CephFS(将<mon-node-ip>
替换为MON节点的IP地址):
sudo mkdir /mnt/cephfs sudo ceph-fuse /mnt/cephfs -m <mon-node-ip>:6789
如果遇到问题,可以查看Ceph相关日志,位于/var/log/ceph
目录下。
在新的MON节点上执行以下命令:
sudo ceph-deploy mon add <new-mon-node>
在新的OSD节点上执行以下命令(将<osd-disk>
替换为要用于存储数据的磁盘):
sudo ceph-deploy osd create --data <osd-disk> <new-osd-node>
在新的MDS节点上执行以下命令:
sudo ceph-deploy mds create <new-mds-node>
如果需要移除Ceph组件,可以使用以下命令:
在MON节点上执行以下命令(将<osd-id>
替换为要移除的OSD的ID):
sudo ceph osd out <osd-id> sudo ceph osd crush remove osd.<osd-id> sudo ceph auth del osd.<osd-id> sudo ceph osd rm <osd-id>
在OSD节点上执行以下命令:
sudo systemctl stop ceph-osd@<osd-id> sudo systemctl disable ceph-osd@<osd-id>
在MON节点上执行以下命令(将<mon-id>
替换为要移除的MON的ID):
sudo ceph mon remove <mon-id>
在MON节点上执行以下命令(将<mds-id>
替换为要移除的MDS的ID):
sudo ceph mds rm <mds-id> --yes-i-really-mean-it
在MDS节点上执行以下命令:
sudo systemctl stop ceph-mds@<mds-id> sudo systemctl disable ceph-mds@<mds-id>
现在你已经成功搭建了一个Ceph共享存储集群,并学会了如何创建和管理Ceph对象、块和文件系统存储。你还了解了如何扩展和移除Ceph集群中的组件。希望这个指南能帮助你更好地理解和使用Ceph.
本文作者:丁一
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!