这是本人的一些学习笔记,如果有错误的地方或者更好的解决方法,欢迎提出!!
Cinder是OpenStack平台中的一个核心项目,提供对存储卷的创建、挂载、卸载、快照等全生命周期的管理,为云计算环境中的虚拟机提供持久化的存储。
1.cinder服务的安装
[root@openstack01 ~]# yum install -y openstack-cinder
检查用户和用户组
[root@openstack01 ~]# cat /etc/passwd | grep cinder
cinder:x:165:165:OpenStack Cinder Daemons:/var/lib/cinder:/sbin/nologin
[root@openstack01 ~]# cat /etc/group | grep cinder
nobody:x:99:nova,cinder
cinder:x:165:cinder
2.修改cinder配置文件
备份文件
[root@openstack01 ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
去除注释和空行生成新文件
[root@openstack01 ~]# grep -Ev '^$|#' /etc/cinder/cinder.conf.bak > /etc/cinder/cinder.conf
编辑cinder配置文件
[root@openstack01 ~]# vim /etc/cinder/cinder.conf
[DEFAULT]
auth_strategy=keystone
transport_url=rabbit://openstack:000000@openstack01:5672
[database]
connection=mysql+pymysql://cinder:000000@openstack01/cinder
[keystone_authtoken]
auth_url=http://openstack01:5000
memcached_servers=openstack01
auth_type=password
username=cinder
password=000000
project_name=project
user_domain_name=Default
project_domain_name=Default
3.编辑nova配置文件
[root@openstack01 ~]# vim /etc/nova/nova.conf
[cinder]
os_region_name = RegionOne
4.创建相关数据库并授权
MariaDB [(none)]> create database cinder;
Query OK, 1 row affected (0.041 sec)
MariaDB [(none)]> grant all privileges on cinder.* to 'cinder'@'localhost' identified by '000000';
Query OK, 0 rows affected (0.113 sec)
MariaDB [(none)]> grant all privileges on cinder.* to 'cinder'@'%' identifiied by '000000';
Query OK, 0 rows affected (0.000 sec)
5.同步数据库
[root@openstack01 ~]# su cinder -s /bin/sh -c "cinder-manage db sync"
检查是否同步成功
MariaDB [(none)]> use cinder;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [cinder]> show table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1
MariaDB [cinder]> show tables;
+----------------------------+
| Tables_in_cinder |
+----------------------------+
| attachment_specs |
| backup_metadata |
| backups |
| cgsnapshots |
| clusters |
| consistencygroups |
| driver_initiator_data |
| encryption |
6.cinder组件初始化
在openstack平台创建cinder用户
[root@openstack01 ~]# openstack user create cinder --domain default --password 000000
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | af5c3b87e4884b32b7695ae30713db49 |
| name | cinder |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
为用户 cinder 分配管理员角色
[root@openstack01 ~]# openstack role add admin --project project --user cinder
创建块存储服务
[root@openstack01 ~]# openstack service create --name cinderv3 volumev3
+---------+----------------------------------+
| Field | Value |
+---------+----------------------------------+
| enabled | True |
| id | 4e0d96d58aa84755a196179eb53bd54b |
| name | cinderv3 |
| type | volumev3 |
+---------+----------------------------------+
创建cinder对外服务端点
openstack endpoint create --region RegionOne volumev3 public http://openstack01:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | db2b434e6220442d9ffa797f43c67b6b |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 4e0d96d58aa84755a196179eb53bd54b |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://openstack01:8776/v3/%(project_id)s |
+--------------+-------------------------------------------+
创建cinder对内服务端点
[root@openstack01 ~]# openstack endpoint create --region RegionOne volumev3 internal http://openstack01:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | 0d3d686193954940a68d0e2d97a79cdb |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 4e0d96d58aa84755a196179eb53bd54b |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://openstack01:8776/v3/%(project_id)s |
+--------------+-------------------------------------------+
创建cinder对管理员访问端点
[root@openstack01 ~]# openstack endpoint create --region RegionOne volumev3 admin http://openstack01:8776/v3/%\(project_id\)s
+--------------+-------------------------------------------+
| Field | Value |
+--------------+-------------------------------------------+
| enabled | True |
| id | 3202d4ff421c463288c58c3ec9f6bc5f |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 4e0d96d58aa84755a196179eb53bd54b |
| service_name | cinderv3 |
| service_type | volumev3 |
| url | http://openstack01:8776/v3/%(project_id)s |
+--------------+-------------------------------------------+
7.启动cinder相关服务
重启 Nova 服务
[root@openstack01 ~]# systemctl restart openstack-nova-api
启动cinder服务并设置开机自启
[root@openstack01 ~]# systemctl start openstack-cinder-api openstack-cinder-scheduler
[root@openstack01 ~]# systemctl enable openstack-cinder-api openstack-cinder-scheduler
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-api.service to /usr/lib/systemd/system/openstack-cinder-api.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-scheduler.service to /usr/lib/systemd/system/openstack-cinder-scheduler.service.
8.检查控制节点上的cinder服务
检查端口情况
[root@openstack01 ~]# ss -lntpu | grep 8776
tcp LISTEN 0 128 *:8776 *:* users:(("cinder-api",pid=85958,fd=7),("cinder-api",pid=85955,fd=7),("cinder-api",pid=85954,fd=7),("cinder-api",pid=85953,fd=7),("cinder-api",pid=85926,fd=7))
查看存储服务列表
[root@openstack01 ~]# openstack volume service list
+------------------+-------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-------------+------+---------+-------+----------------------------+
| cinder-scheduler | openstack01 | nova | enabled | up | 2024-08-03T09:31:30.000000 |
+------------------+-------------+------+---------+-------+----------------------------+
9.在计算节点openstack02搭建存储节点
查看硬盘信息
[root@openstack02 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 98G 0 part
├─centos-root 253:0 0 90G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sr0 11:0 1 973M 0 rom
添加一块新硬盘,硬盘大小100g(建议超过20G),硬盘格式为SCSI,命名为cinder.vmdk
刷新挂载信息
[root@openstack02 ~]# cd /sys/class/scsi_host/
[root@openstack02 scsi_host]# ls
host0 host1 host2
[root@openstack02 scsi_host]# echo '- - -' > host0/scan
[root@openstack02 scsi_host]# echo '- - -' > host1/scan
[root@openstack02 scsi_host]# echo '- - -' > host2/scan
刷新后重新查看硬盘信息
[root@openstack02 scsi_host]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 98G 0 part
├─centos-root 253:0 0 90G 0 lvm /
└─centos-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 100G 0 disk
sr0 11:0 1 973M 0 rom
将硬盘初始化为物理卷
[root@openstack02 ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
将物理卷划分为卷组
[root@openstack02 ~]# vgcreate cinder-volume /dev/sdb
Volume group "cinder-volume" successfully created
配置LVM卷组扫描的设备
[root@openstack02 ~]# vi /etc/lvm/lvm.conf
修改130行的配置文件内容
[root@openstack02 ~]# cat -n /etc/lvm/lvm.conf | grep 130
130 filter = [ "a/sdb/","r/.*/" ]
启动LVM元数据服务
[root@openstack02 ~]# systemctl start lvm2-lvmetad
[root@openstack02 ~]# systemctl enable lvm2-lvmetad
10.在计算节点openstack02安装cinder服务
[root@openstack02 ~]# yum install -y openstack-cinder targetcli python-keystone
查看用户组和用户信息
[root@openstack02 ~]# cat /etc/passwd | grep cinder
cinder:x:165:165:OpenStack Cinder Daemons:/var/lib/cinder:/sbin/nologin
[root@openstack02 ~]# cat /etc/group | grep cinder
nobody:x:99:nova,cinder
cinder:x:165:cinder
11.修改cinder服务配置信息
备份文件
[root@openstack02 ~]# cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak
拷贝控制节点openstack01的配置内容到openstack02
[root@openstack01 ~]# cd /etc/cinder/
[root@openstack01 cinder]# ls
api-paste.ini cinder.conf cinder.conf.bak resource_filters.json rootwrap.conf rootwrap.d volumes
[root@openstack01 cinder]# scp cinder.conf root@openstack02:/etc/cinder/
root@openstack02's password:
cinder.conf
[root@openstack02 ~]# vi /etc/cinder/cinder.conf
修改内容如下
[DEFAULT]
auth_strategy = keystone
transport_url = rabbit://openstack:000000@openstack01:5672
glance_api_servers = http://openstack01:9292
enabled_backends = lvm
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
target_protocol = iscsi
target_helper = lioadm
12.启动计算节点openstack02的cinder服务
[root@openstack02 ~]# systemctl start openstack-cinder-volume target
[root@openstack02 ~]# systemctl enable openstack-cinder-volume target
Created symlink from /etc/systemd/system/multi-user.target.wants/openstack-cinder-volume.service to /usr/lib/systemd/system/openstack-cinder-volume.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
13.检测cinder服务
在控制节点openstack01查看卷服务信息
[root@openstack01 cinder]# openstack volume service list
+------------------+-----------------+------+---------+-------+----------------------------+
| Binary | Host | Zone | Status | State | Updated At |
+------------------+-----------------+------+---------+-------+----------------------------+
| cinder-scheduler | openstack01 | nova | enabled | up | 2024-08-03T15:04:42.000000 |
| cinder-volume | openstack02@lvm | nova | enabled | up | 2024-08-03T15:04:37.000000 |
+------------------+-----------------+------+---------+-------+----------------------------+
通过 Dashboard 查看卷情况
至此,openstack组件cinder服务安装完成