Ceph是一个开源的分布式存储系统,广泛应用于云计算、大数据和人工智能等领域,在CentOS上部署Ceph可以为企业提供高效、可靠的存储解决方案,以下是详细的Ceph在CentOS上的部署指南:
准备工作
1、系统要求:确保系统为64位x86架构的服务器或虚拟机,至少4GB内存和100GB磁盘空间。
2、关闭防火墙和SELinux:使用以下命令关闭防火墙和设置SELinux为宽容模式:
```bash
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo setenforce 0
```
3、关闭图形网络管理器:运行以下命令以确保网络配置的稳定性:
```bash
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
```
4、配置IP地址和主机名:编辑/etc/sysconfig/networkscripts/ifcfgeth0
文件并添加静态IP配置:
```bash
BOOTPROTO=static
IPADDR=YOUR_IP_ADDRESS
NETMASK=YOUR_NETMASK
GATEWAY=YOUR_GATEWAY
ONBOOT=yes
```
替换YOUR_IP_ADDRESS
、YOUR_NETMASK
和YOUR_GATEWAY
为实际的IP地址、子网掩码和网关,编辑/etc/hostname
文件,将主机名更改为所需的名称。
5、修改hosts文件:编辑/etc/hosts
文件,添加各节点的IP地址和主机名:
```bash
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.101 cephnode1
192.168.1.102 cephnode2
192.168.1.103 cephnode3
192.168.1.104 cephnode4
```
6、SSH免密码登录:生成SSH公钥并在各节点间复制:
```bash
sshkeygen t rsa
sshcopyid user@remote_host
```
7、时间同步:安装NTP并同步时间:
```bash
sudo yum install y ntp
sudo systemctl start ntpd
sudo systemctl enable ntpd
```
安装Ceph存储集群
1、安装Ceph软件包:在每个节点上安装Ceph存储集群软件包:
```bash
sudo yum install cephdeploy
```
2、配置Ceph存储集群:配置Ceph存储集群软件包:
```bash
sudo yum install ntp ntpupdate ntpdoc
sudo systemctl start ntpd
```
配置Ceph组件
1、生成密钥对:在管理节点上生成密钥对:
```bash
cephauthtool genkeys /etc/ceph/ceph.client.admin.keyring
```
2、创建Ceph配置文件:使用以下命令创建Ceph配置文件:
```bash
cephauthtool /etc/ceph/ceph.client.admin.keyring —createkeyring /etc/ceph/ceph.mon.keyring —addkey —type mon —setkey [mon] osd ‘allow rwx’ osd ‘allow r’ mon ‘allow r’ osd ‘require_jewel_osds: true’ osd ‘pool default size = 1’ osd ‘pool default min size = 1’ osd ‘pool default pg_num = 192’ osd ‘pool default pgp_num = 192’ osd ‘pool default crush_rule = 0’ mon ‘log level = 0’ mon ‘cluster { global, mon { network public } }’ mon ‘dashboard enable = true’ mon ‘dashboard listen_interface = eth0’ mon ‘dashboard_http_port = 7788’ mon ‘dashboard_socket_path = /var/run/ceph/cephmon.socket’ mon ‘dashboard_ssl_cert_path = /var/lib/ceph/mon/ceph${hostname}.pem’ mon ‘dashboard_ssl_port = 7789’ mon ‘dashboard_username = admin’ mon ‘dashboard_password_hash = dmFsaWRfYmFzZTY0X2VuY29kZWRfc3RyaW5nIQ== ‘mon ‘ms mds map allow rwx cluster required=true public required=true default required=true data required=true meta required=true system required=true’ mon ‘ms mds allow rmw object map required=true’ mon ‘ms mds allow r object map required=true’ mon ‘ms mds allow r object map default=true’ mon ‘ms mds allow rw object map default=true’ mon ‘ms mds allow rmw object map default=true’ mon ‘ms mds map allow rwx cluster default=true public default=true default default=true data default=true meta default=true system default=true’ mon ‘ms mds map allow r object pool default=true’ mon ‘ms mds map allow rw object pool default=true’ mon ‘ms mds map allow r object pool default=true’ mon ‘ms
```
3、配置防火墙:在Admin Calamari节点开放必要端口:
```bash
systemctl start firewalld
systemctl enable firewalld
firewallcmd zone=public addport=80/tcp permanent
firewallcmd zone=public addport=2003/tcp permanent
firewallcmd zone=public addport=45054506/tcp permanent
firewallcmd reload
```
部署Ceph集群
1、初始化集群:在管理节点上初始化Ceph集群:
```bash
cephdeploy cluster create <clustername>
```
2、添加Monitor节点:向集群中添加Monitor节点:
```bash
cephdeploy mon create <clustername> <monitornode>
```
3、添加OSD节点:向集群中添加OSD节点:
```bash
cephdeploy osd create <clustername> <osdnode>
```
4、创建存储池和文件系统:创建存储池和文件系统以便客户端挂载:
```bash
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
ceph fs new cephfs cephfs_metadata cephfs_data
```
常见问答FAQs
1、如何增加Ceph集群的容量?:可以通过添加更多的OSD节点来扩展Ceph集群的容量,使用cephdeploy osd create <clustername> <newosdnode>
命令将新的OSD节点添加到集群中,Ceph会自动重新平衡数据以利用新添加的容量。
2、如何处理Ceph集群中的节点故障?:如果某个OSD节点发生故障,Ceph会自动尝试恢复数据,你可以使用ceph osd tree
命令查看当前的OSD状态,如果需要手动处理故障,可以使用ceph osd out <osdid>
命令将故障的OSD标记为下线,并进行维修,修复完成后,使用ceph osd in <osdid>
命令将其重新上线。