极客时间运维进阶训练营第九周作业
1、梳理 ceph 的各组件及功能
LIBRADOS、RADOSGW、RBD和Ceph FS统称为Ceph客户端接口
LIBRADOS 对外访问接口
RADOSGW 对象存储访问
RBD块存储
Ceph FS 文件存储
Ceph集群的组成:
若干Ceph OSD 对象存储收获程序,
至少一个Ceph Monitor监视器
两个或两个以上的Ceph 管理器manager
高可用的Ceph Metada Server(文件系统元数据服务器)
RADOS cluster:由多台host存储服务器组成的ceph集群
OSD(Object Storage Daemon)提供存储数据,每台存储服务器的磁盘组成的存储空间,操作系统上每一个硬盘就是一个OSD守护程序。用于处理Ceph集群数据复制、恢复、重新平衡,通过检查其他Ceph OSD守护程序的心跳来香Ceph监视器和管理器提供一些监视信息,通常需要3个Ceph OSD才能实现冗余和高可用
Mon(Monitor) ceph监视器,维护OSD和PG的集群状态,一个ceph集群至少要有一个mon,通常3个,还负责管理守护程序哈客户端之间的身份验证
Mgr(Manager) 负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率,当前性能指标和系统负载等,托管基于Python的模块来管理和公开Ceph集群信息,包括基于web的ceph仪表盘和restapi,通常需要1个
MDS(ceph 元数据服务器 ceph-mds) 代表Ceph文件系统(NFS/CIFS)存储元数据
Ceph管理节点:执行ceph的部署、集群管理等操作,添加服务器、更换硬盘(先下线)等
2、基于 ceph-deploy 部署 ceph 集群
# 基本配置所有节点执行 apt install -y apt-transport-https ca-certificates curl software-properties-common wget -q -O- 'https://mirrors.tuna.tsinghua.edu.cn/ceph/keys/release.asc' | apt-key add echo "deb https://mirrors.tuna.tsinghua.edu.cn/ceph/debian-pacific bionic main" >> /etc/apt/sources.list apt update # 创建部署和管理的普通用户 groupadd -r -g 2088 cephadmin && useradd -r -m -s /bin/bash -u 2088 -g 2088 cephadmin && echo cephadmin:123456 | chpasswd echo "cephadmin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers tee -a /etc/hosts << "EOF" 172.31.6.100 ceph-deploy.example.local ceph-deploy 172.31.6.101 ceph-mon1.example.local ceph-mon1 172.31.6.102 ceph-mon2.example.local ceph-mon2 172.31.6.103 ceph-mon3.example.local ceph-mon3 172.31.6.104 ceph-mgr1.example.local ceph-mgr1 172.31.6.105 ceph-mgr2.example.local ceph-mgr2 172.31.6.106 ceph-node1.example.local ceph-node1 172.31.6.107 ceph-node2.example.local ceph-node2 172.31.6.108 ceph-node3.example.local ceph-node3 172.31.6.109 ceph-node4.example.local ceph-node4 EOF apt install -y python2.7 ln -sv /usr/bin/python2.7 /usr/bin/python2 # 部署节点执行 su - cephadmin ssh-keygen ssh-copy-id cephadmin@172.31.6.100 ssh-copy-id cephadmin@172.31.6.101 ssh-copy-id cephadmin@172.31.6.102 ssh-copy-id cephadmin@172.31.6.103 ssh-copy-id cephadmin@172.31.6.104 ssh-copy-id cephadmin@172.31.6.105 ssh-copy-id cephadmin@172.31.6.106 ssh-copy-id cephadmin@172.31.6.107 ssh-copy-id cephadmin@172.31.6.108 ssh-copy-id cephadmin@172.31.6.109 # 安装ceph deploy su - root apt install -y python-pip pip2 install ceph-deploy su - cephadmin # 验证 ceph-deploy --help # 安装集群 install -d ceph-cluster cd ceph-cluster || : # 初始化集群 ceph-deploy new --cluster-network 192.168.0.0/21 --public-network 172.31.0.0/21 ceph-mon1.example.local ceph-mon2.example.local ceph-mon3.example.local # 检查ceph 配置 cat ceph.conf # 初始化node节点,安装基础软件 ceph-deploy install --no-adjust-repos --nogpgcheck ceph-node1 ceph-node2 ceph-node3 ceph-node4 # 安装mon # 3个节点 安装mon软件 apt install -y ceph-mon # 初始化mon ceph-deploy mon create-initial # 安装管理命令 sudo apt install -y ceph-common # 推送admin 秘钥 ceph-deploy admin ceph-node1 ceph-node2 ceph-node3 ceph-node4 ceph-deploy #设置权限 sudo setfacl -m u:cephadmin:rw /etc/ceph/ceph.client.admin.keyring # 检查集群状态 ceph -s # 部署mgr ## mgr节点执行命令安装软件 apt install -y ceph-mgr ## 添加mgr节点 ceph-deploy mgr create ceph-mgr1 # 禁用非安全通讯模式 ceph config set mon auth_allow_insecure_global_id_reclaim false # 查看集群版本 ceph versions # 初始化存储节点-前面已经执行,可以重复执行 ceph-deploy install --release pacific ceph-node1 #擦除磁盘之前通过 deploy 节点对 node 节点执行安装 ceph 基本运行环境 ceph-deploy install --release pacific ceph-node2 ceph-deploy install --release pacific ceph-node3 ceph-deploy install --release pacific ceph-node4 # 添加osd磁盘 ceph-deploy disk list ceph-node1 ceph-deploy disk list ceph-node2 ceph-deploy disk list ceph-node3 ceph-deploy disk list ceph-node4 # 擦除磁盘 ceph-deploy disk zap ceph-node1 /dev/sdb ceph-deploy disk zap ceph-node1 /dev/sdc ceph-deploy disk zap ceph-node1 /dev/sdd ceph-deploy disk zap ceph-node1 /dev/sde ceph-deploy disk zap ceph-node2 /dev/sdb ceph-deploy disk zap ceph-node2 /dev/sdc ceph-deploy disk zap ceph-node2 /dev/sdd ceph-deploy disk zap ceph-node2 /dev/sde ceph-deploy disk zap ceph-node3 /dev/sdb ceph-deploy disk zap ceph-node3 /dev/sdc ceph-deploy disk zap ceph-node3 /dev/sdd ceph-deploy disk zap ceph-node3 /dev/sde ceph-deploy disk zap ceph-node4 /dev/sdb ceph-deploy disk zap ceph-node4 /dev/sdc ceph-deploy disk zap ceph-node4 /dev/sdd ceph-deploy disk zap ceph-node4 /dev/sde ceph-deploy disk zap ceph-node1 /dev/nvme0n1 ceph-deploy disk zap ceph-node2 /dev/nvme0n1 ceph-deploy disk zap ceph-node3 /dev/nvme0n1 ceph-deploy disk zap ceph-node4 /dev/nvme0n1 # 添加OSD磁盘到ceph集群 ceph-deploy osd create ceph-node1 --data /dev/sdb ceph-deploy osd create ceph-node1 --data /dev/sdc ceph-deploy osd create ceph-node1 --data /dev/sdd ceph-deploy osd create ceph-node1 --data /dev/sde ceph-deploy osd create ceph-node2 --data /dev/sdb ceph-deploy osd create ceph-node2 --data /dev/sdc ceph-deploy osd create ceph-node2 --data /dev/sdd ceph-deploy osd create ceph-node2 --data /dev/sde ceph-deploy osd create ceph-node3 --data /dev/sdb ceph-deploy osd create ceph-node3 --data /dev/sdc ceph-deploy osd create ceph-node3 --data /dev/sdd ceph-deploy osd create ceph-node3 --data /dev/sde ceph-deploy osd create ceph-node4 --data /dev/sdb ceph-deploy osd create ceph-node4 --data /dev/sdc ceph-deploy osd create ceph-node4 --data /dev/sdd ceph-deploy osd create ceph-node4 --data /dev/sde
3、梳理块存储、文件存储及对象存储的使用场景
块存储 rbd :供给 操作系统、vmware、kvm来使用
ceph fs:多个服务器之间提供相同的文件存储
对象存储:应用程序直接操作
4、基于 ceph 块存储实现块设备挂载及使用
ceph osd pool create myrbd1 64 64 ceph osd pool application enable myrbd1 rbd rbd pool init -p myrbd1 ##创建镜像 rbd create myimg1 --size 5G --pool myrbd1 rbd create myimg2 --size 3G --pool myrbd1 --image-format 2 --image-feature layering ##列出指定pool的所有image rbd ls --pool myrbd1 ##查看指定rbd的信息 rbd --image myimg1 --pool myrbd1 info ##查看磁盘使用情况 ceph df ## centos 挂在块存储 yum install -y epel-release yum install https://mirrors.aliyun.com/ceph/rpm-octopus/el7/noarch/ceph-release-1-1.el7.noarch.rpm -y yum install -y ceph-common #客户端映射img scp ceph.conf ceph.client.admin.keyring root@172.31.6.201:/etc/ceph/ rbd -p myrbd1 map myimg2 lsblk mkfs.xfs /dev/rbd0 mkdir /data mount /dev/rbd0 /data dd if=/dev/zero of=/data/file1 bs=1M count=500 #删除文件后立即释放磁盘空间 fstrim -v /data mount -t xfs -o discard /dev/rbd0 /data/
5、基于 cephFS 实现多主机数据共享
## 创建cephfs 文件存储-mgr1 apt install -y ceph-mds #部署节点执行 ceph-deploy mds create ceph-mgr1 #创建metadata ceph osd pool create cephfs-metadate 32 32 ceph osd pool create cephfs-data 64 64 ceph -s #创建cephfs并验证 ceph fs new mycephfs cephfs-metadate cephfs-data ceph fs ls #查看指定的cephFS状态 ceph fs status mycephfs ceph mds stat ## 客户端挂在ceph fs mount -t ceph 172.31.6.102:6789:/ /data/ -o name=admin,secret=AQCLOqhjxqn0KxAAOivpnC8ZXBENao7Z59SbZg== mount -t ceph 172.31.6.102:6789:/ /mnt/ -o name=admin,secret=AQCLOqhjxqn0KxAAOivpnC8ZXBENao7Z59SbZg==