OpenStack私有云运维(三)

一、Ceph部署

使用提供的 ceph-14.2.22.tar.gz 软件包,在 OpenStack 平台上创建三台 CentOS7.9系统的云主机,使用这三个节点安装 ceph 服务并完成初始化操作,第一个节点为 mon/osd节点,第二、三个节点为 osd 节点,部署完 ceph 后,创建 vms、images、volumes 三个pool。

主机1为ceph1,主机2为ceph2,主机3为ceph3,每个主机额外加一个20G硬盘

1.前置环境准备

1.1 更改主机名

[root@localhost ~]# hostnamectl set-hostname ceph1
[root@localhost ~]# bash
[root@ceph1 ~]# 

[root@localhost ~]# hostnamectl set-hostname ceph2
[root@localhost ~]# bash
[root@ceph2 ~]# 

[root@localhost ~]# hostnamectl set-hostname ceph3
[root@localhost ~]# bash
[root@ceph3 ~]# 

1.2 关闭防火墙和SELinux

#三个节点均关闭防火墙和Selinux
[root@ceph1/2/3 ~]# systemctl stop firewalld && systemctl disable firewalld
[root@ceph1 ~]# setenforce 0

1.3 配置YUM源

ceph-14.2.22.tar.gz软件包下载
将软件包上传到ceph1节点
tar -zxf ceph-14.2.22.tar.gz -C /opt  #将压缩包解压至opt目录
mkdir /opt/centos  #创建挂载Centos镜像的目录
mount -o loop CentOS-7.9-x86_64-DVD-2009.iso /mnt  #临时挂载到/mnt
cp -rf /mnt/* /opt/centos/   #复制到/opt/centos
umount /mnt   #取消临时挂载的
rm -rf /etc/yum.repos.d/*  #把所有系统自带的repo文件删除
然后vi /etc/yum.repos.d/ceph.repo #创建编辑yum文件
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[ceph]
name=ceph
baseurl=file:///opt/ceph
gpgcheck=0
enabled=1

yum clean all && yum repolist  #检查可用性
另外两台机子也配置本地源的话未免过于费时,我们在cpeh1安装ftp服务,让它们通过ftp服务使用ceph1的软件仓库
yum -y install vsftpd  #安装ftp服务
echo "anon_root=/opt" >> /etc/vsftpd/vsftpd.conf  #修改ftp服务的配置文件,共享/opt目录
systemctl start vsftpd && systemctl enable vsftpd   #启动ftp服务并设置开机自启

ceph2/ceph3:
rm -rf /etc/yum.repos.d/*   #删除系统默认源
vi /etc/yum.repos.d/ceph.repo  #创建新的仓库文件
[centos]
name=centos
baseurl=ftp://192.168.126.148/centos  #这里的IP为ceph1节点IP
gpgcheck=0
enabled=1
[ceph]
name=ceph
baseurl=ftp://192.168.126.148/ceph
gpgcheck=0
enabled=1

1.4 配置主机映射

ceph1,ceph2,ceph3:
cat >> /etc/hosts << EOF
192.168.126.148 ceph1
192.168.126.149 ceph2
192.168.126.147 ceph3
EOF

#根据自己实际情况进行修改

1.5 配置免密登录

因为后续我们需要用ceph-deploy管理工具频繁连接其他节点,所以需要配置免密登录

ceph1:
ssh-keygen  #生成密钥对,一直回车就行
ssh-copy-id root@ceph1
ssh-copy-id root@ceph2
ssh-copy-id root@ceph3  #复制公钥给其他主机

2.安装配置Ceph服务

在此之前,我们先删掉主目录下的ceph.tar.gz压缩包,否则后面我们输入yum -y install ceph-*命令时,系统会默认从当前目录下寻找可用的安装包安装,而ceph.tar.gz(不是rpm后缀)显然不是可用的安装包,就会报错

yum -y install ceph-*   #在ceph1节点安装ceph的所有组件(其中包括部署工具ceph-deploy)

假如提示有软件包错误,那么可以临时用一下阿里云的源进行一下软件包的补全
比如:
错误:软件包:2:ceph-common-14.2.22-0.el7.x86_64 (ceph)
          需要:python-prettytable
这种错误
输入命令:
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
然后输入命令:
yum install -y python-prettytable  #就是需要什么软件包下载什么软件包(注:其他节点估计同样会出现这样一样的问题,所以最好其他节点也安装一下这个软件包)
下载完之后再重新执行上面的ceph组件命令
cd /etc/ceph/  #切换至ceph目录,保证后续生成的文件在该目录下
ceph-deploy new ceph1  #创建部署配置文件
ceph-deploy install ceph1 ceph2 ceph3 --no-adjust-repos  #给所有节点安装ceph软件包,--no-adjust-repos 表示不调整软件包源
ceph-deploy mon create-initial  #在ceph1创建监视器(Monitor)节点
ceph -s  #使用ceph -s命令查看集群状态

...
    health: HEALTH_WARN
            mon is allowing insecure global_id reclaim
可以看到集群健康状态中显示mon节点允许回收不安全的全局唯一标识(global_id),我们把它禁用掉
ceph config set mon auth_allow_insecure_global_id_reclaim false
再次使用ceph -s查看
#给三个节点创建osd(对象存储设备)并添加进集群中,这里的/dev/sdb就是开头加的那块额外硬盘
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph1
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph2
[root@ceph1 ceph]# ceph-deploy osd create --data /dev/sdb ceph3

ceph-deploy mgr create ceph1 ceph2 ceph3  #给三个节点创建mgr(管理器),让我们可以获取集群的管理信息和服务
[root@ceph1 ceph]# ceph-deploy admin ceph1 ceph2 ceph3  #分发admin密钥,免得后续使用ceph命令需要指定mon节点地址、admin密钥等
[root@ceph1 ceph]# ceph osd pool create vms 8
pool 'vms' created
[root@ceph1 ceph]# ceph osd pool create images 8
pool 'images' created
[root@ceph1 ceph]# ceph osd pool create volumes 8
pool 'volumes' created   #根据题目要求,创建创建vms、images、volumes三个pool

[root@ceph1 ceph]# ceph -s  #最后查看集群状态信息,确认无误
[root@ceph1 ceph]# ceph -s
  cluster:
    id:     4182c4fe-eedf-4329-b492-d4ac5744bf21
    health: HEALTH_OK   #id和健康状况,HEALTH_OK表示集群运行正常,没有发现任何问题

  services:
    mon: 1 daemons, quorum ceph1 (age 13m)
    mgr: ceph1(active, since 7m), standbys: ceph2, ceph3
    osd: 3 osds: 3 up (since 8m), 3 in (since 8m)
#各个节点的信息,mon一行说明了ceph1为mon监视器节点
#三个节点都是mgr管理器节点,其中ceph1正在活跃中,ceph2和ceph3在待命中,会在ceph1出问题时接替ceph1
#有三个osd对象存储设备,都在线并活跃中
  data:
    pools:   3 pools, 24 pgs
    objects: 0 objects, 0 B
    usage:   3.0 GiB used, 57 GiB / 60 GiB avail
    pgs:     24 active+clean
#这是集群的数据信息,pools一行展示说明了这个集群有3个存储池和24个PG(Placement Group,是Ceph中数据分布和复制的基本单元)
#object一行则展示说明了当前集群中没有存储任何对象。
#usage一行则展示说明了当前集群的存储使用情况,用了3G,总共60G,还有57G能用
#pgs一行展示说明了PG的状态信息,当前有24个PG处于活跃(active)且干净(clean)的状态。(活跃表示PG正在处理数据,干净表示数据一致性检查没有发现问题,数据很完整)

二、Glance对接Ceph存储

在自己搭建的 OpenStack 平台中修改 glance 服务的相关配置文件,将 glance 后端存储改为 ceph 存储。也就是所以的镜像会上传至 ceph 的 images pool 中。通过命令使用cirros-0.3.4-x86_64-disk.img 镜像文件上传至云平台中,镜像命名为 cirros。

首先,如果你openstack和我一样前面用的是两张仅主机模式的网卡,那么这里需要额外添加一张NAT模式网卡这样才能和Ceph的几台主机进行网络联通。或者Ceph的主机加仅主机模式的虚拟网卡(注:如果你ceph的主机也是仅主机模式网卡那就无需在openstack主机上添加NAT网卡)

为了方便联通不出问题,所有主机之间都设置好SSH免密和hosts修改,这种步骤前面做的太多了,想必能看到这里的人应该不需要我再重新演示了吧!

1.创建存储池

在ceph节点,为 Glance 创建一个独立的存储池(如 glance-images):

ceph osd pool create glance-images 128 128  # 池名 + PG/PGP 数量(根据集群规模调整)
ceph osd pool application enable glance-images rbd

2.创建 Ceph 用户

在ceph节点,创建专供 Glance 使用的用户(如 client.glance)并授权:

ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=glance-images'

3.导出用户密钥

将生成的密钥保存到文件(供 Glance 配置使用):

ceph auth get client.glance > /etc/ceph/ceph.client.glance.keyring

4.配置 Glance 使用 Ceph RBD 后端

(1) 修改 Glance 配置文件

编辑 /etc/glance/glance-api.conf,配置 RBD 存储参数:

[glance_store]
stores = rbd
default_store = rbd

[rbd]
rbd_store_pool = glance-images
rbd_store_user = glance
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_chunk_size = 8

(2) 复制 Ceph 配置文件

将 Ceph 的配置文件和密钥文件复制到 Glance 节点:

# 复制 ceph.conf 和密钥
scp /etc/ceph/ceph.conf glance-node:/etc/ceph/
scp /etc/ceph/ceph.client.glance.keyring glance-node:/etc/ceph/

(3) 设置密钥文件权限

确保密钥文件权限正确:

chown glance:glance /etc/ceph/ceph.client.glance.keyring
chmod 600 /etc/ceph/ceph.client.glance.keyring

(4) 重启 Glance 服务并导入配置环境

systemctl restart openstack-glance-api
source /etc/keystone/admin-openrc.sh

5.上传镜像

glance image-create --name "cirros" --disk-format qcow2 --container-format bare --progress < cirros-0.3.4-x86_64-disk.img 

三、Cinder对接Ceph存储

写到这里,看似只有这些命令很简单,其实每进行一步都要解决很多问题,关于ceph的内容写到这里写累了,下面关于ceph还没有写完的内容等以后有空再写吧

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇