在CentOS上安装Ceph存储是一个复杂但有条理的过程,以下是一个详细的指南,包括准备工作、安装步骤、集群构建、dashboard配置以及Ceph文件系统创建等步骤。
一、准备工作
1、关闭防火墙和SELinux:在开始之前,确保防火墙和SELinux已关闭,可以使用以下命令关闭防火墙:
sudo systemctl stop firewalld sudo systemctl disable firewalld
对于SELinux,可以将其设置为宽容模式:
sudo setenforce 0
2、关闭图形网络管理器:为了确保网络配置的稳定性,建议关闭图形网络管理器:
sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager
3、配置IP地址和主机名:为节点配置静态IP地址和主机名,编辑/etc/sysconfig/networKScripts/ifcfgeth0
文件,并添加以下内容:
BOOTPROTO=static IPADDR=YOUR_IP_ADDRESS NETMASK=YOUR_NETMASK GATEWAY=YOUR_GATEWAY ONBOOT=yes
替换YOUR_IP_ADDRESS
、YOUR_NETMASK
和YOUR_GATEWAY
为实际的IP地址、子网掩码和网关,编辑/etc/hostname
文件,将主机名更改为所需的名称。
4、修改hosts文件:编辑/etc/hosts
文件,添加以下内容:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
5、SSH配置:为了简化配置过程,可以生成SSH公钥以进行无密码登录:
sshkeygen t rsa sshcopyid user@remote_host
6、时间同步:确保所有节点的时间准确同步,使用NTP(Network Time Protocol):
sudo yum install y ntp sudo systemctl start ntpd sudo systemctl enable ntpd
二、安装Ceph存储集群
1、安装Ceph存储集群软件包:使用以下命令安装Ceph存储集群软件包:
sudo yum install cephdeploy
2、配置Ceph存储集群软件包:执行以下命令配置Ceph存储集群软件包:
sudo yum install ntp ntpupdate ntpdoc
3、配置网络同步:为了确保Ceph节点之间的网络同步,请确保所有节点上的NTP服务已经启动并运行:
sudo systemctl start ntpd
4、关闭防火墙和安全选项:为了确保Ceph存储集群的安全性,请关闭所有节点的防火墙以及安全选项:
sudo systemctl stop firewalld
5、配置Ceph存储集群节点:在每个Ceph节点上执行以下步骤:
生成密钥对:
cephauthtool genkeys /etc/ceph/ceph.client.admin.keyring
创建Ceph配置文件:
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 rw 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 mds map allow rw object pool default=true’ mon ‘ms mds map allow rmw object pool default=true’
三、启动Ceph服务
完成Ceph配置后,可以使用以下命令启动Ceph服务:
sudo systemctl start cephmon.target sudo systemctl start cephosd.target sudo systemctl start cephmds.target
四、验证Ceph安装和配置
安装和配置Ceph后,您可以使用以下命令验证Ceph是否正常运行:
sudo ceph s
如果一切正常,您应该能够看到与您的Ceph集群相关的信息。
五、添加和管理存储池
您可以使用Ceph来创建存储池,以存储数据,以下是一些常用命令:
创建存储池:
sudo ceph osd pool create {poolname} {pgnum} [{pgpnum}]
{poolname}
是您要创建的存储池的名称,{pgnum}
是存储池的PG数(placement group数),{pgpnum}
是可选的PG副本数。
列出存储池:
sudo ceph osd lspools
删除存储池:
sudo ceph osd pool delete {poolname} {poolname} yesireallyreallymeanit
六、FAQs问答
Q1: Ceph集群中至少需要多少个节点?
A1: 一个最小型的Ceph集群至少要有3个节点,cephmon,cephmgr,cephmds都搭建在一个节点上,其他节点上搭建cephosd,cephosd会和cephmon分开节点部署,以实现冗余和高可用性。
Q2: 如何确保Ceph集群中所有节点的时间同步?
A2: 确保所有Ceph节点的时间准确同步非常重要,可以使用NTP(Network Time Protocol)来同步时间,在所有节点上安装NTP服务,并启动NTP服务:
sudo yum install y ntp sudo systemctl start ntpd sudo systemctl enable ntpd