Ceph是一个开源的分布式存储系统,提供高性能、高可靠性和可扩展性。以下是配置高可用Ceph集群的详细步骤:
# 在所有节点上执行
sudo apt update && sudo apt upgrade -y # Ubuntu
# 或
sudo yum update -y # CentOS/RHEL
# 安装必要工具
sudo apt install -y python3 python3-pip ntp chrony # Ubuntu
sudo yum install -y python3 python3-pip ntp chrony # CentOS/RHEL
# 配置NTP时间同步
sudo timedatectl set-ntp true
sudo systemctl enable --now chronyd # 或 ntpd
# 在第一个管理节点上执行
curl --silent --remote-name --location https://github.com/ceph/ceph/raw/octopus/src/cephadm/cephadm
chmod +x cephadm
sudo ./cephadm add-repo --release octopus
sudo ./cephadm install
sudo cephadm install ceph-common
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo "deb https://download.ceph.com/debian-octopus/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt update
sudo apt install ceph ceph-common
sudo cephadm bootstrap --mon-ip <MONITOR_IP>
/etc/ceph/ceph.conf
:[global]
fsid = $(uuidgen)
mon initial members = node1,node2,node3
mon host = 10.0.0.1,10.0.0.2,10.0.0.3
public network = 10.0.0.0/24
cluster network = 10.1.0.0/24
auth cluster required = cephx
auth service required = cephx
auth client required = cephx
osd journal size = 1024
osd pool default size = 3
osd pool default min size = 2
osd pool default pg num = 128
osd pool default pgp num = 128
osd crush chooseleaf type = 1
sudo mkdir /var/lib/ceph/mon/ceph-$(hostname -s)
sudo ceph-mon --mkfs -i $(hostname -s) --cluster ceph --keyring /etc/ceph/ceph.mon.keyring
sudo systemctl start ceph-mon@$(hostname -s)
sudo systemctl enable ceph-mon@$(hostname -s)
# 列出可用磁盘
sudo ceph-volume inventory
# 为每个磁盘创建OSD
sudo ceph-volume lvm create --data /dev/sdX
# 或传统方式
sudo ceph-disk prepare --cluster ceph --cluster-uuid $(uuidgen) --fs-type xfs /dev/sdX
sudo ceph-disk activate /dev/sdX1
# 在其他节点上添加monitor
sudo ceph-deploy mon add node2
sudo ceph-deploy mon add node3
sudo ceph-deploy mds create node1 node2 node3
sudo ceph-deploy rgw create node1
sudo ceph -s
sudo ceph health
sudo ceph osd tree
# 创建复制池
sudo ceph osd pool create mypool 128 128 replicated
# 或创建纠删码池
sudo ceph osd pool create ecpool 128 128 erasure
sudo ceph osd pool set ecpool allow_ec_overwrites true
sudo apt install ceph-common # Ubuntu
sudo yum install ceph-common # CentOS/RHEL
sudo scp root@<ceph-admin-node>:/etc/ceph/ceph.conf /etc/ceph/
sudo scp root@<ceph-admin-node>:/etc/ceph/ceph.client.admin.keyring /etc/ceph/
sudo ceph osd getcrushmap -o crushmap.txt
# 编辑crushmap.txt
sudo ceph osd setcrushmap -i crushmap.txt
sudo ceph mgr module enable pg_autoscaler
sudo ceph osd pool set mypool pg_autoscale_mode on
sudo ceph mgr module enable dashboard
sudo ceph dashboard create-self-signed-cert
sudo ceph dashboard set-login-credentials admin <password>
sudo ceph mgr module enable alerts
节点无法加入集群:
OSD状态不正常:
sudo ceph osd repair <osd-id>
sudo systemctl restart ceph-osd@<osd-id>
监控节点问题:
sudo ceph mon remove <mon-name>
sudo ceph mon add <mon-name> <ip>
通过以上步骤,您可以在Linux上建立一个高可用的Ceph虚拟化存储集群,为虚拟化环境提供可靠的存储后端。