Ceph是一个开源的分布式存储系统,提供对象存储、块存储和文件系统存储功能。以下是使用Ceph进行分布式存储管理的详细指南。
Ceph的核心组件包括: - MON (Monitor): 集群监控器,维护集群状态 - OSD (Object Storage Daemon): 对象存储守护进程,实际存储数据 - MDS (Metadata Server): 为CephFS提供元数据服务 - RGW (RADOS Gateway): 提供对象存储的RESTful接口
# 在所有节点上执行
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian
sudo yum update -y # CentOS/RHEL
# 安装必要工具
sudo apt install -y python3 python3-pip ntp chrony
# Ubuntu/Debian
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo "deb https://download.ceph.com/debian-{release-name} $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ceph.list
# CentOS/RHEL
sudo yum install -y https://download.ceph.com/rpm-{release-name}/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo apt install -y ceph-deploy # Ubuntu/Debian
sudo yum install -y ceph-deploy # CentOS/RHEL
mkdir my-cluster && cd my-cluster
ceph-deploy new node1 node2 node3 # 指定初始monitor节点
ceph-deploy install node1 node2 node3
ceph-deploy mon create-initial
# 在每个节点上准备OSD磁盘
ceph-deploy osd create --data /dev/sdb node1
ceph-deploy osd create --data /dev/sdb node2
ceph-deploy osd create --data /dev/sdb node3
ceph-deploy admin node1 node2 node3
ceph -s
ceph osd stat
ceph mon stat
# 添加OSD
ceph-deploy osd create --data /dev/sdc node1
# 移除OSD
ceph osd out osd.0
ceph osd crush remove osd.0
ceph auth del osd.0
ceph osd rm osd.0
# 创建pool
ceph osd pool create mypool 128 128
# 设置pool副本数
ceph osd pool set mypool size 3
# 删除pool
ceph osd pool delete mypool mypool --yes-i-really-really-mean-it
# 创建块设备镜像
rbd create myimage --size 1024 --pool rbd
# 映射块设备
rbd map myimage --pool rbd
# 格式化并挂载
mkfs.ext4 /dev/rbd/rbd/myimage
mount /dev/rbd/rbd/myimage /mnt
# 部署RGW
ceph-deploy rgw create node1
# 使用S3客户端访问
pip install boto3
# 创建CephFS
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
ceph fs new myfs cephfs_metadata cephfs_data
# 部署MDS
ceph-deploy mds create node1
# 挂载CephFS
mount -t ceph node1:6789:/ /mnt -o name=admin,secretfile=/etc/ceph/ceph.client.admin.keyring
# 安装Ceph Dashboard
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
ceph dashboard set-login-credentials admin password
# 访问Dashboard
https://<monitor-ip>:8443
# 调整OSD参数
ceph tell osd.* injectargs '--osd-op-threads=8'
# 备份集群配置
ceph config dump > ceph_config_backup.txt
# 恢复集群
ceph config assimilate-conf -i ceph_config_backup.txt
Monitor问题:
ceph mon dump # 检查monitor状态
ceph-mon -i {mon-id} --extract-monmap /tmp/monmap # 恢复monmap
OSD问题:
ceph osd tree # 查看OSD树
systemctl restart ceph-osd@{osd-num} # 重启OSD服务
网络问题:
ceph osd ping # 测试OSD连通性
ceph osd set-nearfull-ratio 0.85 # 调整容量警告阈值
通过以上步骤,您可以在Linux环境中成功部署和管理Ceph分布式存储系统。根据实际需求,可以进一步配置高级功能如EC池、多站点复制等。