极客时间运维进阶训练营第九周作业

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==

  

posted @ 2022-12-24 09:30  john221100  阅读(35)  评论(0编辑  收藏  举报