openstack Queens版本集群部署–cinder部署

作者: oldboy 分类: Openstack 发布时间: 2023-03-01 14:08

参考教程

一、初始化系统,

1、参考openstack Queens版本集群部署(手动安装配置各个组件)

2、安装openstack queens安装源(Q版)

yum install -y centos-release-openstack-queens.noarch

3、在控制节点写编写hosts文件并分发到各节点

echo "103.73.119.153  cinder" >>/etc/hosts
#获取所有节点的主机名
#awk '{print $2}' /etc/hosts|sed -n '3,$'p
for i in `awk '{print $2}' /etc/hosts|sed -n '3,$'p`;do scp /etc/hosts ${i}:/etc;done

二、控制节点安装与配置

1、创建cinder数据库并授权

mysql
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY '8ef194ead24acb67de4c';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY '8ef194ead24acb67de4c';
exit

2、获得admin凭证并设置cinder用户及密码

source admin-openrc
#交互设置密码
#openstack user create --domain default --password-prompt cinder
#非交互设置密码
openstack user create --domain default --password www.123.nyc cinder

3、添加admin角色到cinder用户(cinder用户在service服务项目里)

openstack role add --project service --user cinder admin

4、创建cinder服务实体

openstack service create --name cinder --description "OpenStack Block Storage" volume
openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2
openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3

5、创建网络服务API端点

openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\(tenant_id\)s
openstack endpoint create --region RegionOne volume admin http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev3 public http://controller:8776/v3/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://controller:8776/v3/%\(tenant_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://controller:8776/v3/%\(tenant_id\)s

6、安装并配置控制节点

yum install -y openstack-cinder

配置文件里的controller不要用域名代替

cp /etc/cinder/cinder.conf{,.bak}
#my_ip对应的是控制节点的IP
sed -i '/^\[DEFAULT\]/a glance_api_servers = http://controller:9292\nauth_strategy = keystone\nenabled_backends = lvm\ncinder_internal_tenant_project_id = a4a1fac36710402cb1a373883bc251cf\ncinder_internal_tenant_user_id = 8e89ac0fedd5490aa02cc30acde8ee0c\ntransport_url = rabbit://openstack:1735e32955b2ef18362e@controller\nrpc_backend = rabbit\nmy_ip = 103.73.119.106' /etc/cinder/cinder.conf

sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:8ef194ead24acb67de4c@controller/cinder' /etc/cinder/cinder.conf

sed -i '/^\[keystone_authtoken\]/a auth_uri = http://controller:5000\nauth_url = http://controller:35357\nmemcached_servers = controller:11211\nauth_type = password\nproject_domain_name = default\nuser_domain_name = default\nproject_name = service\nusername = cinder\npassword = www.123.nyc' /etc/cinder/cinder.conf

sed -i '/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp' /etc/cinder/cinder.conf

sed -i '/^\[oslo_messaging_rabbit\]/a rabbit_host = controller\nrabbit_port = 5672\nrabbit_userid = openstack\nrabbit_password = 1735e32955b2ef18362e' /etc/cinder/cinder.conf

cat >>/etc/cinder/cinder.conf<<'EOF'
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
image_volume_cache_max_size_gb = 200
image_volume_cache_max_count = 50
image_volume_cache_enabled = True
EOF
#已经提前设置好了
#sed -i "/^\[cinder\]/a os_region_name=RegionOne" /etc/nova/nova.conf

7、初始化块设备服务的数据库

su -s /bin/sh -c "cinder-manage db sync" cinder

8、重启计算API 服务

systemctl restart openstack-nova-api.service
systemctl status openstack-nova-api.service

9、启动块设备存储服务,并将其配置为开机自启

systemctl enable --now openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service
#systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service

三、存储节点安装与配置

1、硬盘初始化准备

sdb/sdc/sdd为存储盘

#安装LVM包:
yum install -y lvm2
#启动LVM的metadata服务并且设置该服务随系统启动:
systemctl enable --now lvm2-lvmetad.service
systemctl status lvm2-lvmetad.service
#systemctl restart lvm2-lvmetad.service
#创建LVM物理卷 /dev/sdb、/dev/sdc、/dev/sdd,需要交互的
pvcreate /dev/sdb
pvcreate /dev/sdc
pvcreate /dev/sdd

查看物理卷

#创建LVM卷组cinder-volumes
vgcreate cinder-volumes /dev/sdb /dev/sdc /dev/sdd

查看卷组可用容量

vim /etc/lvm/lvm.conf

cp /etc/lvm/lvm.conf{,.bak}
#a是允许访问的磁盘,r是拒绝访问的磁盘
sed -i '141a \ \ \ \ \ \ \ \ filter = [ "a/sdb/","a/sdc/","a/sdd/", "r/.*/" ]' /etc/lvm/lvm.conf

2、安装并配置组件

内容不全

参考这个教程修改:(16条消息) (八)Open Stack(M)—Cinder安装和配置_Cat God 007的博客-CSDN博客

说明:enabled_backends = lvm是启用 LVM 后端,后端名称是任意的。这是使用驱动程序的名称作为后端的名称。但这个名称要和下面的[lvm]保持一致。学习参考(37分钟处:04-cinder卷存储的安装_哔哩哔哩_bilibili)。教程里是在一个节点上添加了两块盘,创建了两个卷组(cinder-ssd/cinder-sata),后端名称:enabled_backends = ssd,sata,下面的区块对应的是一个[ssd],另一个[sata],看下图

yum install -y openstack-cinder targetcli python-keystone
cp /etc/cinder/cinder.conf{,.bak}
#此处的my_ip是存储节点的IP地址
sed -i '/^\[DEFAULT\]/a glance_api_servers = http://controller:9292\nauth_strategy = keystone\nenabled_backends = lvm\nrpc_backend = rabbit\nmy_ip = 103.73.119.153' /etc/cinder/cinder.conf

sed -i '/^\[database\]/a connection = mysql+pymysql://cinder:8ef194ead24acb67de4c@controller/cinder' /etc/cinder/cinder.conf

sed -i '/^\[oslo_messaging_rabbit\]/a rabbit_host = controller\nrabbit_port = 5672\nrabbit_userid = openstack\nrabbit_password = 1735e32955b2ef18362e' /etc/cinder/cinder.conf

sed -i "/^\[oslo_concurrency\]/a lock_path = /var/lib/cinder/tmp" /etc/cinder/cinder.conf

sed -i '/^\[keystone_authtoken\]/a auth_uri = http://controller:5000\nauth_url = http://controller:35357\nmemcached_servers = controller:11211\nauth_type = password\nproject_domain_name = default\nuser_domain_name = default\nproject_name = service\nusername = cinder\npassword = www.123.nyc' /etc/cinder/cinder.conf


cat >>/etc/cinder/cinder.conf<<'EOF'
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
EOF

3、启动块存储卷服务及其依赖的服务,并将其配置为随系统启动

systemctl enable --now openstack-cinder-volume.service target.service
systemctl status openstack-cinder-volume.service target.service
#systemctl restart openstack-cinder-volume.service target.service

4、在controller节点上验证

cinder service-list

该显示一个scheduler和存储节点

但实际上没有存储节点

在存储节点上查看日志

连不上数据库【找到原因:存储节点配置不全导致的】

tailf /var/log/cinder/volume.log

最终验证结果:

四、卷的使用

dashboard上创建卷

测试在创建实例时创建新卷,实例创建不成功,不创建卷时,等实例创建好后连接卷是可以使用的

挂载的cinder存储测速(千兆网卡),有点慢了,不适合分布式存储或cinder块存储

本地磁盘的写速度

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

标签云