网站空间可以通过什么获取,wordpress文字替换,tale博客和wordpress,wordpress 企业沟通插件OpenStack与云计算
什么是云#xff1f; 如何正确理解云#xff0c;可以从以下几个方面。 云的构成。 用户#xff1a;对用户而言是透明无感知的#xff0c;不用关心底层构成#xff0c;只需要知道利用云完成自己任务即可。 云提供商#xff1a;对云资产管理和运维。 云…OpenStack与云计算
什么是云 如何正确理解云可以从以下几个方面。 云的构成。 用户对用户而言是透明无感知的不用关心底层构成只需要知道利用云完成自己任务即可。 云提供商对云资产管理和运维。 云的特点。 弹性扩展自助服务标准接口方便二次开发和其他系统对接付费和计量。 云的定义。 云是指你作为接受服务的对象是云端不管你在何时何地都能享受云计算提供的服务。云是网络、互联网的一种比喻说法。 云分为私有云、公有云、混合云及行业云等等。 OpenStack 既是一个社区也是一个项目和一个开源软件提供了一个部署云的操作平台或工具集。用OpenStack易于构建虚拟计算或存储服务的云既可以为公有云、私有云也可以为大云、小云提供可扩展、灵活的云计算。 OpenStack是一个管理计算、存储和网络资源的数据中心云计算开放平台通过一个仪表板为管理员提供了所有的管理控制同时通过Web界面为其用户提供资源。
简介
OpenStack部署方式多样化本文采用脚本方式部署OpenStack Q版本。私有云平台搭建的各项软件包、依赖包、安装脚本等离线安装可满足私有云平台的搭建、云平台的使用、各组件的运维操作等。
个人使用方面
1、DevStack 2、Rdo 3、手动部署 手动部署all-in-one、multi-node、multi-HA-node环境。
企业、团体方面
1、Puppet 2、ansible
构建OpenStack私有云平台
基本环境配置 云计算平台的拓扑图如图1所示IP地址规划如下图所示。 云计算IaaS控制节点 本次搭建采用双节点安装即 controller node 控制节点和 compute node 计算节点。ens34为内部管理网络ens33 为外部网络。存储节点安装操作系统时划分两个空白分区以 sdasdb 为例。作为 cinder 和 swift存储磁盘搭建 ftp 服务器作为搭建云平台的 yum 源。配置文件中密码需要根据实际环境进行配置。 角色接口主机名IP地址用途controller nodeens33controller192.168.150.10用于外部网络ens34192.168.200.10用于内部管理网络compute nodeens33compute192.168.150.20用于外部网络ens34192.168.200.20用于内部管理网络ceph nodeens33ceph1192.168.150.11后端分布式存储ceph nodeens33ceph2192.168.150.12后端分布式存储ceph nodeens33ceph3192.168.150.13后端分布式存储
安装CentOS7说明
【CentOS7版本】 :::info CentOS7系统选择1804版本CentOS-7-x86_64-DVD-1804.iso 最小化安装系统 controller node4G内存40G存储 ::: compute node4G内存40G存储额外添加一块100G硬盘作为cinder存储。
配置网络、主机名
controller节点
配置网络 ens33: 192.168.150.10 ens34: 192.168.200.10
[rootcontroller ~]# nmcli con mod ens33 ipv4.method manual ipv4.address 192.168.150.10/24 ipv4.gateway 192.168.150.2 ipv4.dns 223.5.5.5 autoconnect yes
[rootcontroller ~]# nmcli con mod ens34 ipv4.method manual ipv4.address 192.168.200.10/24 autoconnect yes
[rootcontroller ~]# nmcli con up ens33
[rootcontroller ~]# nmcli con up ens34配置主机名
# hostnamectl set-hostname controller
# 按ctrld 退出 重新登陆compute 节点
配置网络 ens33: 192.168.150.20 ens34: 192.168.200.20
[rootcompute ~]# nmcli con mod ens33 ipv4.method manual ipv4.address 192.168.150.20/24 ipv4.gateway 192.168.150.2 ipv4.dns 223.5.5.5 autoconnect yes
[rootcompute ~]# nmcli con mod ens34 ipv4.method manual ipv4.address 192.168.200.20/24 autoconnect yes
[rootcompute ~]# nmcli con up ens33
[rootcompute ~]# nmcli con up ens34配置主机名
# hostnamectl set-hostname compute
# 按ctrld 退出 重新登陆配置yum源Controller和compute节点
1yum源备份
# cd /etc/yum.repos.d/
# mkdir bak_repo
# mv *.repo bak_repo/2创建repo文件 controller
在/etc/yum.repos.d创建CentOS.repo源文件[rootcontroller yum.repos.d]# cat CentOS.repo EOF
[CentOS]
nameCentOS
baseurlfile:///opt/centos
gpgcheck0
[iaas]
nameiaas
baseurlfile:///opt/iaas-repo
gpgcheck0
EOFcompute
在/etc/yum.repos.d创建CentOS.repo源文件[rootcompute yum.repos.d]# cat CentOS.repo EOF
[CentOS]
nameCentOS
baseurlftp://192.168.150.10/centos
gpgcheck0
[iaas]
nameiaas
baseurlftp://192.168.150.10/iaas-repo
gpgcheck0
EOF3挂载iso文件
【挂载CentOS-7-x86_64-DVD-1804.iso】
[rootcontroller ~]# mount /dev/sr0 /mnt/
[rootcontroller ~]# mkdir /opt/centos
[rootcontroller ~]# cp -rf /mnt/* /opt/centos/
[rootcontroller ~]# umount /mnt/【挂载XianDian-IaaS-v2.4.iso】
[rootcontroller ~]# mount -o loop XianDian-IaaS-V2.4.iso /mnt/
[rootcontroller ~]# cp -rf /mnt/* /opt/
[rootcontroller ~]# umount /mnt/4搭建ftp服务器开启并设置自启
[rootcontroller ~]# yum install vsftpd -y
[rootcontroller ~]# vi /etc/vsftpd/vsftpd.conf
添加anon_root/opt/保存退出[rootcontroller ~]# systemctl enable --now vsftpd5配置防火墙和Selinux
【controller/compute】
编辑selinux文件# sed -i /^SELINUX/ c SELINUXdisabled /etc/selinux/config
# setenforce 0编辑环境变量 controller和compute节点 yum install iaas-xiandian -y 编辑文件/etc/xiandian/openrc.sh,此文件是安装过程中的各项参数根据每项参数上一行的说明及服务器实际情况进行配置。 vim etc/xiandian/openrc.shHOST_IP192.168.150.10
HOST_PASSredhat
HOST_NAMEcontroller
HOST_IP_NODE192.168.150.20
HOST_PASS_NODEredhat
HOST_NAME_NODEcompute
network_segment_IP192.168.150.0/24
RABBIT_USERredhat
RABBIT_PASSredhat
DB_PASSredhat
DOMAIN_NAMEdemo
ADMIN_PASSredhat
DEMO_PASSredhat
KEYSTONE_DBPASSredhat
GLANCE_DBPASSredhat
GLANCE_PASSredhat
NOVA_DBPASSredhat
NOVA_PASSredhat
NEUTRON_DBPASSredhat
NEUTRON_PASSredhat
METADATA_SECRETredhat
INTERFACE_IP192.168.150.10/192.168.150.20controllerIP/computeIP
INTERFACE_NAMEenp9s0 外部网络网卡名称
Physical_NAMEprovider 外部网络适配器名称
minvlan101 vlan网络范围的第一个vlanID
maxvlan200 vlan网络范围的最后一个vlanID
CINDER_DBPASSredhat
CINDER_PASSredhat
BLOCK_DISKsdb1 空白分区
SWIFT_PASSredhat
OBJECT_DISKsdb2 空白分区
STORAGE_LOCAL_NET_IP192.168.150.20
HEAT_DBPASSredhat
HEAT_PASSredhat
ZUN_DBPASSredhat
ZUN_PASSredhat
KURYR_DBPASSredhat
KURYR_PASSredhat
CEILOMETER_DBPASSredhat
CEILOMETER_PASSredhat
AODH_DBPASSredhat
AODH_PASSredhat通过脚本安装服务
Compute节点划分两个分区
[rootcompute ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x0e7a20a8.Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-629145599, default 2048):
Using default value 2048
Last sector, sectors or size{K,M,G} (2048-629145599, default 629145599): 150G
Partition 1 of type Linux and of size 150 GiB is setCommand (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (314574848-629145599, default 314574848):
Using default value 314574848
Last sector, sectors or size{K,M,G} (314574848-629145599, default 629145599):
Using default value 629145599
Partition 2 of type Linux and of size 150 GiB is setCommand (m for help): pDisk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units sectors of 1 * 512 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0e7a20a8Device Boot Start End Blocks Id System
/dev/sdb1 2048 314574847 157286400 83 Linux
/dev/sdb2 314574848 629145599 157285376 83 LinuxCommand (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks. 基础配置操作命令已经编写成shell脚本通过脚本进行一键安装。如下 Controller节点和Compute节点
执行脚本iaas-pre-host.sh进行安装 脚本主要完成安装OpenStack包、配置hosts解析、安装chrony服务 [rootcontroller ~]# iaas-pre-host.sh
安装完成后同时重启
[rootcontroller ~]# reboot
通过脚本安装数据库服务 基础服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 Controller节点 执行脚本iaas-install-mysql.sh进行安装 安装Keystone认证服务 #Controller 通过脚本安装keystone服务 认证服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 脚本主要完成安装keystone软件、创建keystone数据库、配置数据库连接、为keystone服务创建数据库表、创建令牌、创建签名密钥和证书、定义用户、租户和角色、配置环境变量。 Controller节点 执行脚本iaas-install-keystone.sh进行安装。 安装Glance镜像服务 #Controller 通过脚本安装glance服务 镜像服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 脚本主要完成安装glance软件包、创建glance数据库、配置数据库连接、为镜像服务创建数据库表、创建用户、配置镜像服务、创建Endpoint和API端点、启动服务。 Controller 节点 执行脚本iaas-install-glance.sh进行安装 安装Nova计算服务 #Controller 通过脚本安装nova服务 计算服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-nova-controller.sh进行安装 #Compute节点 执行脚本iaas-install-nova-compute.sh进行安装 安装Neutron网络服务 #Controller节点 通过脚本安装neutron服务 网络服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-neutron-controller.sh进行安装 #Compute节点 执行脚本iaas-install-neutron-compute.sh进行安装 安装Dashboard服务
通过脚本安装dashboard服务
dashboard的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-dashboard.sh进行安装
访问dashboard
打开浏览器访问Dashboard http://controller或本机内网ip/dashboard 注检查防火墙规则确保允许http服务相关端口通行或者关闭防火墙。
OpenStack命令补全
设置openstack命令补全 很多时候在输入openstack命令的时候总感觉重复手打输入和记不住想不起来命令时很困扰所以为了解决这个问题下面提供一种方法
首先执行安装命令
[rootcontroller ~]# yum -y install bash-completion将命令写入到/etc/bash_completion.d/中这个路径一定要写正确
[rootcontroller ~]# openstack complete /etc/bash_completion.d/complete最后执行以下命令即可最后reboot即可生效
[rootcontroller ~]# echo source /etc/bash_completion.d/complete ~/.bashrc安装Cinder块存储服务
通过脚本安装Cinder服务 块存储服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller 执行脚本iaas-install-cinder-controller.sh进行安装 #Compute节点 执行脚本iaas-install-cinder-compute.sh进行安装 安装Swift对象存储服务
通过脚本安装Swift服务 对象存储服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller 执行脚本iaas-install-swift-controller.sh进行安装 #Compute节点 执行脚本iaas-install-swift-compute.sh进行安装 安装Heat编配服务 Controller节点 通过脚本安装heat服务 编配服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-heat.sh进行安装 安装Ceilometer监控服务 通过脚本安装Ceilometer服务 ceilometer监控服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-ceilometer-controller.sh进行安装 #Compute节点 执行脚本iaas-install-ceilometer-compute.sh进行安装 安装Aodh监控服务 通过脚本安装Aodh服务 Alarm监控服务的操作命令已经编写成shell脚本通过脚本进行一键安装。如下 #Controller节点 执行脚本iaas-install-aodh.sh进行安装 构建ceph分布式存储
基本环境配置
本文将通过ceph-deloy工具一个集群自动化部署工具使用较久成熟稳定被很多自动化工具所集成可用于生产部署。
安装CentOS7说明
【CentOS7版本】 CentOS7系统选择2009版本CentOS-7-x86_64-Minimal-2009.iso 最小化安装系统 规划 三台CentOS7.9服务器2核CPU2G内存根磁盘50GB新增3块硬盘sdb、sdc、sdd其中sdb 200G硬盘sdc和sdd各100Gsdb划分两个分区各100G作为journal跟cache的缓存盘sdc和sdd作为数据共享盘。 集群ceph1管理IP192.168.150.11集群ceph2管理IP192.168.150.12集群ceph3管理IP192.168.150.13
配置网络、主机名
关闭防火墙关闭selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config同步时间
yum install chrony -y
sed -i -e 3,6 s/^/#/ -e 3 c server ntp1.aliyun.com iburst /etc/chrony.conf
systemctl enable --now chronyd
chronyc sources分别修改三台机器hostname
hostnamectl set-hostname ceph1
hostnamectl set-hostname ceph2
hostnamectl set-hostname ceph3在三台机器分别添加配置hosts
cat /etc/hosts EOF
192.168.150.11 ceph1
192.168.150.12 ceph2
192.168.150.13 ceph3
EOF配置ceph1到所有节点root用户免密钥互信。
[rootceph1 ~]# ssh-keygen -f ~/.ssh/id_rsa -N -q
# 公钥分发到所有节点
[rootceph1 ~]# for i in ceph1 ceph2 ceph3 ; do ssh-copy-id $i; done配置本地yum源。
ceph1配置为yum仓库服务器其他节点使用ftp方式使用ceph仓库
# 上传ceph.iso到ceph1
[rootceph1 ~]# ll ceph.iso
-rw-r--r-- 1 root root 2408808448 Mar 18 09:15 ceph.iso# 安装httpd并设置为开机自启动
[rootceph1 ~]# yum install -y vsftpd
[rootceph1 ~]# systemctl enable vsftpd --now# 挂载ceph.iso到/var/ftp
[rootceph1 ~]# mkdir /var/ftp/ceph
[rootceph1 ~]# echo /root/ceph.iso /var/ftp/ceph iso9660 defaults 0 0 /etc/fstab
[rootceph1 ~]# mount -a
# yum文件ceph.repo由后面的ceph-deploy工具安装时自动生成。部署ceph集群
步骤一安装ceph-deploy 重要直接设置环境变量即可否则集群部署过程将使用官方yum源。
[rootceph1 ~]# export CEPH_DEPLOY_REPO_URLftp://ceph1/ceph/在ceph1上安装部署工具。
Ceph官方推出了一个用python写的工具 cpeh-deploy可以很大的简化ceph集群的配置过程[rootceph1 ~]# yum install /var/ftp/ceph/noarch/ceph-deploy-2.0.1-0.noarch.rpm
# 注意安装高版本的ceph-deploy否则后面配置会报错ceph1上创建工作目录
[rootceph1 ~]# mkdir /ceph-cluster
[rootceph1 ~]# cd /ceph-cluster步骤二创建ceph集群在/ceph-cluster目录下生成配置文件。
创建ceph集群
创建一个新集群并设置mon节点。
ceph1-ceph3添加epel源wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[rootceph1 ceph-cluster]# ceph-deploy new ceph1 ceph2 ceph3
[rootceph1 ceph-cluster]# ll
total 16
-rw-r--r-- 1 root root 235 Mar 18 09:19 ceph.conf
-rw-r--r-- 1 root root 4852 Mar 18 09:19 ceph-deploy-ceph.log
-rw------- 1 root root 73 Mar 18 09:19 ceph.mon.keyring给所有节点安装ceph相关软件包。
[root ceph1 ceph-cluster]# ceph-deploy install ceph1 ceph2 ceph3添加监控节点
初始化所有节点的mon服务也就是启动mon服务。
[rootceph1 ceph-cluster]# ceph-deploy mon create-initial
# 作用是将ceph.conf配置文件拷贝到所有mon节点并将ceph-mon服务启动并设置开机自启创建ceph管理节点mgr
注意每个运行了mon的节点上都需要安装mgr节点
[rootceph1 ceph-cluster]# ceph-deploy mgr create ceph1 ceph2 ceph3 步骤三准备日志磁盘分区 注意sdb1和sdb2两个分区用来做存储服务器的journal缓存盘。生产中固态用于缓存sas用户共享。
格式化sdb
[rootceph1 ceph-cluster]# for i in ceph{1..3}
dossh $i parted /dev/sdb mklabel gptssh $i parted /dev/sdb mkpart primary 1 50%ssh $i parted /dev/sdb mkpart primart 50% 100%
done磁盘分区后的默认权限无法让ceph对其进行读写操作需要修改权限。
[rootceph1 ceph-cluster]# for i in ceph{1..3}
dossh $i chown ceph.ceph /dev/sdb1 /dev/sdb2
done以上操作服务器重启后再次重值导致授权失效所以需要把规则写到配置文件实现永久有效。 规则1如果设备名为/dev/sdb1则设备文件的拥有者和拥有组为ceph 规则2如果设备名为/dev/sdb2则设备文件的拥有者和拥有组为ceph [rootceph1 ceph-cluster]# vim /etc/udev/rules.d/70-sdb.rules
ENV{DEVNAME}/dev/sdb1,OWNERceph,GROUPceph
ENV{DEVNAME}/dev/sdb2,OWNERceph,GROUPceph复制到其他osd节点
[rootceph1 ceph-cluster]# for i in ceph{2..3}
doscp /etc/udev/rules.d/70-sdb.rules $i:/etc/udev/rules.d/
done步骤四创建OSD存储空间
初始化清空磁盘数据仅在ceph1操作
注意ceph-deploy v2.0.0开始不再使用ceph-disk命令来初始化osd磁盘如果还使用旧的命令初始磁盘报错
[rootceph1 ceph-cluster]# for i in ceph{1..3}
dossh $i parted /dev/sdc mklabel gptssh $i parted /dev/sdd mklabel gpt
done#清理磁盘
[rootceph1 ceph-cluster]# for i in ceph{1..3}
do ssh $i ceph-volume lvm zap /dev/sdcssh $i ceph-volume lvm zap /dev/sdd
done创建OSD存储空间
// 创建osd存储设备sdc提供存储空间sdb1提供缓存
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 ceph1
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdd --journal /dev/sdb2 ceph1
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 ceph2
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdd --journal /dev/sdb2 ceph2
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdc --journal /dev/sdb1 ceph3
[rootceph1 ceph-cluster]# ceph-deploy osd create --data /dev/sdd --journal /dev/sdb2 ceph3步骤五查看ceph状态验证在主节点生成的ceph.client.admin.keyring文件拷贝至所有节点的/etc/ceph下
[rootceph1 ceph-cluster]# ceph-deploy admin ceph1 ceph2 ceph3# 检查集群状态使用命令 ceph health 或者 ceph -s
[rootceph1 ceph-cluster]# ceph health
HEALTH_OK
[rootceph1 ~]# ceph -scluster:id: 55eafb95-ab53-4045-9c64-82d2726a6b31health: HEALTH_OKservices:mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 68m)mgr: ceph1(active, since 68m), standbys: ceph3, ceph2osd: 6 osds: 6 up (since 75s), 6 in (since 75s)data:pools: 0 pools, 0 pgsobjects: 0 objects, 0 Busage: 6.0 GiB used, 594 GiB / 600 GiB avail
pgs: 步骤六启用dashboard自 nautilus开始dashboard作为一个单独的模块独立出来了使用时需要在所有的mgr节点上单独安装
# 在所有的mgr节点上单独安装
[rootceph1 ceph-cluster]# for i in ceph{1..3}
dossh $i yum install -y ceph-mgr-dashboard
done# 启用dashboard
[rootceph1 ceph-cluster]# ceph mgr module enable dashboard --force
# 默认启用SSL/TLS所以需要创建自签名根证书
[rootceph1 ceph-cluster]# ceph dashboard create-self-signed-cert# 创建具有管理员角色的用户
[rootceph1 ceph-cluster]# ceph dashboard ac-user-create admin admin administrator
{username: admin, lastUpdate: 1616031372, name: null, roles: [administrator], password: $2b$12$4wa4pCKkDf.pvDO9LFldZuwn1GRt.W6zDXvV9QHxnjovrmpA3inWS,
email: null}# 查看ceph-mgr服务
[rootceph1 ~]# ceph mgr services
{dashboard: https://ceph1:8443/
}注如果仪表盘dashboard密码忘了可以使用以下命令重置密码 ceph dashboard ac-user-set-password admin “RedHat123”
ceph和openstack集成
OpenStack 使用 Ceph 作为后端存储可以带来以下好处
不需要购买昂贵的商业存储设备降低 OpenStack 的部署成本Ceph 同时提供了块存储、文件系统和对象存储能够完全满足 OpenStack 的存储类型需求RBD COW 特性支持快速的并发启动多个 OpenStack 实例为 OpenStack 实例默认的提供持久化卷为 OpenStack 卷提供快照、备份以及复制功能为 Swift 和 S3 对象存储接口提供了兼容的 API 支持
配置Ceph环境
首先openstack和ceph节点统一hosts解析
192.168.150.11 ceph1
192.168.150.12 ceph2
192.168.150.13 ceph3
192.168.150.10 controller
192.168.150.20 compute创建后端需要的存储池(ceph-01节点操作)
# cinder卷的存储池
rootceph1:~# ceph osd pool create volumes 32
# glance存储池
rootceph1:~# ceph osd pool create images 32
# 备份存储池
rootceph1:~# ceph osd pool create backups 32
# 创建实例存储池
rootceph1:~# ceph osd pool create vms 32# 查看存储池
rootceph1:~# ceph osd pool ls
volumes
images
backups
vms
rootceph1:~# ceph osd pool ls detail
pool 1 volumes replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 68 flags hashpspool stripe_width 0
pool 2 images replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 71 flags hashpspool stripe_width 0
pool 3 backups replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 74 flags hashpspool stripe_width 0
pool 4 vms replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 32 pgp_num 32 autoscale_mode warn last_change 77 flags hashpspool stripe_width 0创建后端用户
2.1创建密钥(ceph1节点操作) 在ceph上创建cinder、glance、cinder-backup、nova用户创建密钥允许访问使用Ceph存储池
2.1.1创建用户client.cinder 对volumes存储池有rwx权限对vms存储池有rwx权限对images池有rx权限 rootceph1:~# ceph auth get-or-create client.cinder mon “allow r” osd “allow class-read object_prefix rbd_children,allow rwx poolvolumes,allow rwx poolvms,allow rx poolimages” class-readx的子集授予用户调用类读取方法的能力 object_prefix 通过对象名称前缀。下例将访问限制为任何池中名称仅以 rbd_children 为开头的对象。
2.1.2 创建用户client.glance 对images存储池有rwx权限 rootceph1:~# ceph auth get-or-create client.glance mon “allow r” osd “allow class-read object_prefix rbd_children,allow rwx poolimages” 2.1.3 创建用户client.cinder-backup 对backups存储池有rwx权限 rootceph1:~# ceph auth get-or-create client.cinder-backup mon “profile rbd” osd “profile rbd poolbackups” 使用 rbd profile 为新的 cinder-backup 用户帐户定义访问权限。然后客户端应用使用这一帐户基于块来访问利用了 RADOS 块设备的 Ceph 存储。 2.2 导出密钥(ceph-01节点操作)
# 切换到ceph目录
rootceph1:~# cd /etc/ceph/# 导出glance密钥
rootceph1:/etc/ceph# ceph auth get client.glance -o ceph.client.glance.keyring# 导出cinder密钥
rootceph1:/etc/ceph# ceph auth get client.cinder -o ceph.client.cinder.keyring# 导出cinder-backup密钥
rootceph1:/etc/ceph# ceph auth get client.cinder-backup -o ceph.client.cinder-backup.keyring拷贝密钥
3.1 创建存放目录(openstack节点执行)
rootcontroller:~# mkdir /etc/ceph/3.2 拷贝密钥到控制节点(ceph1节点操作)
# 拷贝glance密钥
rootceph1:/etc/ceph# scp ceph.client.glance.keyring rootcontroller:/etc/ceph/# 拷贝cinder密钥
rootceph-01:/etc/ceph# scp ceph.client.cinder.keyring rootcontroller:/etc/ceph/# 拷贝ceph集群认证配置文件
rootceph-01:/etc/ceph# scp ceph.conf rootcontroller:/etc/ceph/3.3 拷贝密钥到计算节点(ceph-01节点操作)
# 拷贝cinder密钥
[rootcompute ~]# mkdir /etc/ceph
rootceph1:/etc/ceph# scp ceph.client.cinder.keyring rootcompute:/etc/ceph/# 拷贝cinder-backup密钥(backup服务节点)
rootceph1:/etc/ceph# scp ceph.client.cinder-backup.keyring rootcompute:/etc/ceph/# 拷贝ceph集群认证配置文件
rootceph1:/etc/ceph# scp ceph.conf rootcompute:/etc/ceph/添加libvirt密钥(计算节点执行)
# 生成密钥(PS注意如果有多个计算节点它们的UUID必须一致)
rootcompute:~# cd /etc/ceph/
rootcompute:/etc/ceph# UUIDbf168fa8-8d5b-4991-ba4c-12ae622a98b1
rootcompute:/etc/ceph# cat secret.xml EOF
secret ephemeralno privatenouuid$UUID/uuidusage typecephnameclient.cinder secret/name/usage
/secret
EOF# 执行命令写入secret
[rootcompute ~]# virsh secret-define --file secret.xml# 查看添加后端密钥
rootcompute ~:/etc/ceph# virsh secret-listUUID Usage
-------------------------------------------------------------------bf168fa8-8d5b-4991-ba4c-12ae622a98b1 ceph client.cinder secret# 加入key
# 将key值复制出来
[rootcompute ~]# cat ceph.client.cinder.keyring
AQCvztRk8ssALhAAXshR1EY90HvIyxkhal1cQ[rootcompute ~]# virsh secret-set-value --secret ${UUID} --base64 $(cat ceph.client.cinder.keyring | grep key | awk -F {print $3})
注意本文controller节点复用计算节点执行相同操作。安装ceph客户端(openstack所有节点执行)
# 主要作用是OpenStack可调用Ceph资源
rootcontroller:~# yum install -y ceph-common
rootcompute:~# yum install -y ceph-commonceph和openstack glance集成
配置glance后端存储(控制节点执行)
# 更改glance密钥属性
rootcontroller:~# chown glance.glance /etc/ceph/ceph.client.glance.keyring# 修改配置文件
rootcontroller:~# cp /etc/glance/glance-api.conf{,.bak}
rootcontroller:~# vim /etc/glance/glance-api.conf
rootcontroller:~# sed -n 14,23p /etc/glance/glance-api.conf
[DEFAULT]
...
# enable COW cloning of images
show_image_direct_url True
[glance_store]# stores file,http
# default_store file
# filesystem_store_datadir /var/lib/glance/images/stores rbd,file,http
default_store rbd
rbd_store_pool images
rbd_store_user glance
rbd_store_ceph_conf /etc/ceph/ceph.conf
rbd_store_chunk_size 8# 重启生效ceph配置
rootcontroller:~# systemctl restart openstack-glance-api.service# 设置开机自启动
rootcontroller:~# systemctl enable openstack-glance-api.service# 配置管理员环境变量
rootcontroller ~# vim admin-openrc.sh
export OS_PROJECT_DOMAIN_NAMEdefault
export OS_USER_DOMAIN_NAMEdefault
export OS_PROJECT_NAMEadmin
export OS_USERNAMEadmin
export OS_PASSWORDredhat
export OS_AUTH_URLhttp://192.168.150.10:5000/v3
export OS_IDENTITY_API_VERSION3
export OS_IMAGE_API_VERSION2
export PS1[\u\h \W(keystone_admin)]\$
# 上传镜像
rootcontroller ~#
rootcontroller ~# ll CentOS-7-x86_64-GenericCloud-2009.qcow2
-rw-r--r--. 1 root root 888995840 Dec 23 13:04 CentOS-7-x86_64-GenericCloud-2009.qcow2rootcontroller:~# openstack image create centos7 --disk-format qcow2 --file CentOS-7-x86_64-GenericCloud-2009.qcow2 --public
# openstack image list
---------------------------------------------------------------
| ID | Name | Status |
---------------------------------------------------------------
| 88342def-69e7-4aaa-a8d2-936473b0cb0e | centos7 | active |
---------------------------------------------------------------验证镜像(ceph1节点执行)
rootceph1:/etc/ceph# rbd ls images
88342def-69e7-4aaa-a8d2-936473b0cb0e[rootceph1 ceph]# ceph df
RAW STORAGE:CLASS SIZE AVAIL USED RAW USED %RAW USED hdd 600 GiB 591 GiB 2.6 GiB 8.6 GiB 1.43 TOTAL 600 GiB 591 GiB 2.6 GiB 8.6 GiB 1.43 POOLS:POOL ID STORED OBJECTS USED %USED MAX AVAIL volumes 1 0 B 0 0 B 0 187 GiB images 2 848 MiB 112 2.5 GiB 0.44 187 GiB backups 3 0 B 0 0 B 0 187 GiB vms 4 0 B 0 0 B 0 187 GiB ceph和openstack cinder集成
更改cinder密钥属性(openstack节点执行)
rootcontroller:~# chown cinder.cinder /etc/ceph/ceph.client.cinder.keyring
rootcompute:~# chown cinder.cinder /etc/ceph/ceph.client.cinder.keyring修改cinder配置文件
控制节点执行
# 指定存储类型否则在创建卷时类型为 __DEFAULT__
rootcontroller:~# vim /etc/cinder/cinder.conf
rootcontroller:~# sed -n 1,2p /etc/cinder/cinder.conf
[DEFAULT]
default_volume_type ceph# 重启服务生效配置
rootcontroller:~# systemctl restart openstack-cinder-scheduler.service
# 计算节点执行
rootcompute:~# vim /etc/cinder/cinder.conf
rootcompute:/etc/ceph# sed -n 1,2p;28,39p /etc/cinder/cinder.conf[DEFAULT]
#enabled_backends lvm
enabled_backends ceph,lvm[ceph]
volume_driver cinder.volume.drivers.rbd.RBDDriver
rbd_pool volumes
rbd_ceph_conf /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot false
rbd_max_clone_depth 5
rbd_store_chunk_size 4
rados_connect_timeout -1
glance_api_version 2
rbd_user cinder
rbd_secret_uuid bf168fa8-8d5b-4991-ba4c-12ae622a98b1
volume_backend_name ceph# 重启服务生效配置
rootcompute:/etc/ceph# systemctl restart openstack-cinder-volume.service创建卷类型(控制节点执行)
# 创建卷类型
rootcontroller:~# openstack volume type create ceph
rootcontroller:~# openstack volume type create lvm# 设置卷类型元数据
rootcontroller:~# cinder --os-username admin --os-tenant-name admin type-key ceph set volume_backend_nameceph
rootcontroller:~# cinder --os-username admin --os-tenant-name admin type-key lvm set volume_backend_namelvm
# 查看存储类型rootcontroller:~# openstack volume type list
---------------------------------------------------------------
| ID | Name | Is Public |
---------------------------------------------------------------
| a64c49a3-b5a2-4c2d-a26f-ba392f91d22f | lvm | True |
| 2e42be46-1f70-481f-9db0-8638547e9011 | ceph | True |
---------------------------------------------------------------# 创建卷测试
rootcontroller:~# openstack volume create ceph01 --type ceph --size 1
# 查看volumes存储池是否存在卷
rootceph1:/etc/ceph# rbd ls volumes
volume-22ddb8e3-7390-4390-be67-dbd83ea1394f 配置cinder卷备份
配置卷备份(计算节点执行)
# 更改密钥属性
rootcompute:/etc/ceph# chown cinder.cinder /etc/ceph/ceph.client.cinder-backup.keyring# 修改配置文件
rootcompute-01:/etc/ceph# vim /etc/cinder/cinder.conf
rootcompute-01:/etc/ceph# sed -n 1,9p /etc/cinder/cinder.conf
[DEFAULT]
backup_driver cinder.backup.drivers.ceph.CephBackupDriver
backup_ceph_conf/etc/ceph/ceph.conf
backup_ceph_user cinder-backup
backup_ceph_chunk_size 4194304
backup_ceph_pool backups
backup_ceph_stripe_unit 0
backup_ceph_stripe_count 0
restore_discard_excess_bytes true# 重启生效配置
rootcompute-01:/etc/ceph# systemctl restart openstack-cinder-backup.service# 设置开机自启动
rootcompute-01:/etc/ceph# systemctl enable openstack-cinder-backup.service创建卷备份(控制节点执行)
rootcontroller:~# openstack volume backup create --name ceph_backup ceph01验证卷备份(ceph1节点执行)
rootceph1:/etc/ceph# rbd ls backups
volume-22ddb8e3-7390-4390-be67-dbd83ea1394f.backup.baseceph和openstack nova集成
注意vmware嵌套虚拟化环境需要修改nova配置文件修改virt_typeqemu然后重启nova-compute服务。
修改nova配置文件(计算节点执行)
# 修改nova配置文件rootcompute:/etc/ceph# vim /etc/nova/nova.conf
rootcompute:/etc/ceph# sed -n 1,2p;47,52p /etc/nova/nova.conf
[DEFAULT]
live_migration_flag VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE[libvirt]
images_type rbd
images_rbd_pool vms
images_rbd_ceph_conf /etc/ceph/ceph.conf
rbd_user cinder
rbd_secret_uuid bf168fa8-8d5b-4991-ba4c-12ae622a98b1# 重启nova服务生效配置
rootcompute1:/etc/ceph# systemctl restart openstack-nova-compute.service创建实例测试(控制节点执行)
# 创建云主机类型
openstack flavor create --vcpus 1 --ram 2048 --disk 20 --public m1.web# 创建外部网络
openstack network create --share --external --provider-physical-network provider
--provider-network-type flat public
# 创建子网
openstack subnet create --network public --allocation-pool start192.168.150.100,end192.168.150.200 --dns-nameserver 223.5.5.5 --gateway 192.168.150.2 --subnet-range 192.168.150.0/24 public_150# 创建云主机
openstack server create --flavor m1.web --image centos7 --security-group default --nic net-idba8a9f55-9d0e-4f08-9db7-e38ea8526ab4 vm01验证是否到ceph中的vms存储池(ceph1节点执行)
ootceph1:/etc/ceph# rbd ls vms
ae046a56-79d5-46b0-a62a-380fc677a3e4_disk在存储节点Ceph OSD使能pool
[rootceph1 ceph]# ceph osd pool application enable volumes rbd
enabled application rbd on pool volumes
[rootceph1 ceph]# ceph osd pool application enable vms rbd
enabled application rbd on pool vms
[rootceph1 ceph]# ceph osd pool application enable images rbd
enabled application rbd on pool images
[rootceph1 ceph]# ceph osd pool application enable backups rbd
enabled application rbd on pool backups查看ceph状态 文章转载自: http://www.morning.zttjs.cn.gov.cn.zttjs.cn http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn http://www.morning.jpdbj.cn.gov.cn.jpdbj.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.lktjj.cn.gov.cn.lktjj.cn http://www.morning.lrzst.cn.gov.cn.lrzst.cn http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn http://www.morning.jgmlb.cn.gov.cn.jgmlb.cn http://www.morning.kqrql.cn.gov.cn.kqrql.cn http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn http://www.morning.tpnxr.cn.gov.cn.tpnxr.cn http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn http://www.morning.trhrk.cn.gov.cn.trhrk.cn http://www.morning.pbtdr.cn.gov.cn.pbtdr.cn http://www.morning.jtfcd.cn.gov.cn.jtfcd.cn http://www.morning.addai.cn.gov.cn.addai.cn http://www.morning.rrgm.cn.gov.cn.rrgm.cn http://www.morning.kpwcx.cn.gov.cn.kpwcx.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.txfxy.cn.gov.cn.txfxy.cn http://www.morning.lxmmx.cn.gov.cn.lxmmx.cn http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.dzyxr.cn.gov.cn.dzyxr.cn http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn http://www.morning.mznqz.cn.gov.cn.mznqz.cn http://www.morning.rkzk.cn.gov.cn.rkzk.cn http://www.morning.sh-wj.com.cn.gov.cn.sh-wj.com.cn http://www.morning.smzr.cn.gov.cn.smzr.cn http://www.morning.mrttc.cn.gov.cn.mrttc.cn http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.dcmnl.cn.gov.cn.dcmnl.cn http://www.morning.gpryk.cn.gov.cn.gpryk.cn http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn http://www.morning.wcjk.cn.gov.cn.wcjk.cn http://www.morning.uqrphxm.cn.gov.cn.uqrphxm.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.pudejun.com.gov.cn.pudejun.com http://www.morning.prgyd.cn.gov.cn.prgyd.cn http://www.morning.yrhd.cn.gov.cn.yrhd.cn http://www.morning.ngjpt.cn.gov.cn.ngjpt.cn http://www.morning.fpxyy.cn.gov.cn.fpxyy.cn http://www.morning.gjwkl.cn.gov.cn.gjwkl.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn http://www.morning.wmyqw.com.gov.cn.wmyqw.com http://www.morning.lhxrn.cn.gov.cn.lhxrn.cn http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn http://www.morning.mrnnb.cn.gov.cn.mrnnb.cn http://www.morning.nytpt.cn.gov.cn.nytpt.cn http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn http://www.morning.cljpz.cn.gov.cn.cljpz.cn http://www.morning.ckcjq.cn.gov.cn.ckcjq.cn http://www.morning.cyjjp.cn.gov.cn.cyjjp.cn http://www.morning.wzwpz.cn.gov.cn.wzwpz.cn http://www.morning.nlnmy.cn.gov.cn.nlnmy.cn http://www.morning.lynb.cn.gov.cn.lynb.cn http://www.morning.drpbc.cn.gov.cn.drpbc.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.gnbfj.cn.gov.cn.gnbfj.cn http://www.morning.nrlsg.cn.gov.cn.nrlsg.cn http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn http://www.morning.hwxxh.cn.gov.cn.hwxxh.cn http://www.morning.jhfkr.cn.gov.cn.jhfkr.cn http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn http://www.morning.kkhf.cn.gov.cn.kkhf.cn http://www.morning.dbddm.cn.gov.cn.dbddm.cn http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn http://www.morning.jczjf.cn.gov.cn.jczjf.cn