Openstack Train配置手册-Cinder配置手册

snow chuai汇总、整理、撰写---2020/3/3


1. 拓扑
     ------------+---------------------------+---------------------------+------------
                 |                           |                           |
             eth0|192.168.11             eth0|192.168.12             eth0|192.168.13
     +-----------+-----------+   +-----------+-----------+   +-----------+-----------+
     |    [ Control Node ]   |   |    [ Storage Node ]   |   |    [ Compute Node ]   |
     |   [node1.1000cc.net]  |   |   [node3.1000cc.net]  |   |   [node2.1000cc.net]  |
     |  MariaDB    RabbitMQ  |   |      Open vSwitch     |   |        Libvirt        |
     |  Memcached  httpd     |   |        L2 Agent       |   |     Nova Compute      |
     |  Keystone   Glance    |   |        L3 Agent       |   |      Open vSwitch     |
     |  Nova API             |   |     Metadata Agent    |   |        L2 Agent       |
     |  Neutron Server       |   |     Cinder-Volume     |   |                       |
     |  Metadata Agent       |   |     Cinder-Backup     |   |                       |
     |  Cinder API           |   |        [vdb磁盘]       |   |                       |
     +-----------------------+   +-----------+-----------+   +-----------------------+
                                             |
                                             |
                                             |
     ----------------------------------------+----------------------------------------
                                             |                         
                                         eth0|192.168.14            
                                 +-----------+-----------+
                                 |     [ NFS Server ]    |
                                 |   [node2.1000cc.net]  |
                                 --------------------------
2. 在控制节点安装及配置Cinder
2.1 设定Cinder用户并完成数据库同步
1) 创建cinder用户并设定endpoint信息
[root@node1 ~(keystone)]# openstack user create --domain default --project service --password servicepassword cinder
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| default_project_id  | 7972f61f4a1c4f2592d2bb6dc7711e81 |
| domain_id           | default                          |
| enabled             | True                             |
| id                  | c2f84a3c381e43ef96d43c31e4a70a5f |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@node1 ~(keystone)]# openstack role add --project service --user cinder admin
[root@node1 ~(keystone)]# openstack service create --name cinderv3 --description "OpenStack Block Storage" volumev3 +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Block Storage | | enabled | True | | id | e026655883af48ec8cfe207d00bc5ac1 | | name | cinderv3 | | type | volumev3 | +-------------+----------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne volumev3 \ public http://192.168.10.11:8776/v3/%\(tenant_id\)s +--------------+--------------------------------------------+ | Field | Value | +--------------+--------------------------------------------+ | enabled | True | | id | da954011d62347bd8bc8541b8b2c5be7 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | e026655883af48ec8cfe207d00bc5ac1 | | service_name | cinderv3 | | service_type | volumev3 | | url | http://192.168.10.11:8776/v3/%(tenant_id)s | +--------------+--------------------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne volumev3 \ internal http://192.168.10.11:8776/v3/%\(tenant_id\)s +--------------+--------------------------------------------+ | Field | Value | +--------------+--------------------------------------------+ | enabled | True | | id | 71693efdce6e4cd4b3f2b04eda480adb | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | e026655883af48ec8cfe207d00bc5ac1 | | service_name | cinderv3 | | service_type | volumev3 | | url | http://192.168.10.11:8776/v3/%(tenant_id)s | +--------------+--------------------------------------------+
[root@node1 ~(keystone)]# openstack endpoint create --region RegionOne volumev3 \ admin http://192.168.10.11:8776/v3/%\(tenant_id\)s +--------------+--------------------------------------------+ | Field | Value | +--------------+--------------------------------------------+ | enabled | True | | id | 671f0d489c7f4d56af6c42773b36ca46 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | e026655883af48ec8cfe207d00bc5ac1 | | service_name | cinderv3 | | service_type | volumev3 | | url | http://192.168.10.11:8776/v3/%(tenant_id)s | +--------------+--------------------------------------------+
2) 设定数据库 [root@node1 ~(keystone)]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 216 Server version: 10.1.20-MariaDB MariaDB Server
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database cinder; Query OK, 1 row affected (0.02 sec)
MariaDB [(none)]> grant all privileges on cinder.* to cinder@'localhost' identified by 'password'; Query OK, 0 rows affected (0.13 sec)
MariaDB [(none)]> grant all privileges on cinder.* to cinder@'%' identified by 'password'; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit Bye
2.2 安装并配置Cinder
1) 安装cinder软件
[root@node1 ~(keystone)]# yum --enablerepo=centos-openstack-train,epel install openstack-cinder -y
2) 配置cinder [root@node1 ~(keystone)]# mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak [root@node1 ~(keystone)]# vim /etc/cinder/cinder.conf [DEFAULT] # 设定本机IP my_ip = 192.168.10.11 log-dir = /var/log/cinder state_path = /var/lib/cinder auth_strategy = keystone
transport_url = rabbit://openstack:password@192.168.10.11
enable_v3_api = True
[database] connection = mysql+pymysql://cinder:password@192.168.10.11/cinder
[keystone_authtoken] www_authenticate_uri = http://192.168.10.11:5000 auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = servicepassword
[oslo_concurrency] lock_path = $state_path/tmp

[root@node1 ~(keystone)]# chmod 640 /etc/cinder/cinder.conf [root@node1 ~(keystone)]# chgrp cinder /etc/cinder/cinder.conf [root@node1 ~(keystone)]# su -s /bin/bash cinder -c "cinder-manage db sync" [root@node1 ~(keystone)]# systemctl enable --now openstack-cinder-api openstack-cinder-scheduler
[root@node1 ~(keystone)]# openstack volume service list +------------------+------------------+------+---------+-------+----------------------------+ | Binary | Host | Zone | Status | State | Updated At | +------------------+------------------+------+---------+-------+----------------------------+ | cinder-scheduler | node1.1000cc.net | nova | enabled | up | 2020-03-03T05:04:58.000000 | +------------------+------------------+------+---------+-------+----------------------------+
2.3 SELinux及防火墙设定
[root@node1 ~(keystone)]# yum --enablerepo=centos-openstack-train -y install openstack-selinux
[root@node1 ~(keystone)]# firewall-cmd --add-port=8776/tcp --permanent success [root@node1 ~(keystone)]# firewall-cmd --reload success
3. 在存储节点配置Cinder
1) 安装Cinder
[root@node3 ~]# yum --enablerepo=centos-openstack-train,epel install openstack-cinder python2-crypto targetcli -y
2) 配置并启动Cinder [root@node3 ~]# mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak [root@node3 ~]# vim /etc/cinder/cinder.conf [DEFAULT] my_ip = 192.168.10.13 log-dir = /var/log/cinder state_path = /var/lib/cinder auth_strategy = keystone
transport_url = rabbit://openstack:password@192.168.10.11
glance_api_servers = http://192.168.10.11:9292
enable_v3_api = True
[database] connection = mysql+pymysql://cinder:password@192.168.10.11/cinder
[keystone_authtoken] www_authenticate_uri = http://192.168.10.11:5000 auth_url = http://192.168.10.11:5000 memcached_servers = 192.168.10.11:11211 auth_type = password project_domain_name = default user_domain_name = default project_name = service username = cinder password = servicepassword
[oslo_concurrency] lock_path = $state_path/tmp

[root@node3 ~]# chmod 640 /etc/cinder/cinder.conf [root@node3 ~]# chgrp cinder /etc/cinder/cinder.conf [root@node3 ~]# systemctl enable --now openstack-cinder-volume
4. 使用Cinder-LVM
1) 创建磁盘及建立File System
[root@node3 ~]# fdisk /dev/vdb
[root@node3 ~]# pvcreate /dev/vdb1
[root@node3 ~]# vgcreate -s 32M snowvg /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
  Volume group "snowvg" successfully created
2) 配置Cinder服务 [root@node3 ~]# vim /etc/cinder/cinder.conf [DEFAULT] ...... ...... ...... ...... ...... ......
# 于[DEFAULT]区段,设定后台存储类型为LVM enabled_backends = lvm
...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [lvm] target_helper = lioadm target_protocol = iscsi target_ip_address = 192.168.10.13 volume_group = snowvg volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volumes_dir = $state_path/volumes
[root@node3 ~]# systemctl restart openstack-cinder-volume
4) Firewalld设定 [root@node3 ~]# firewall-cmd --add-service=iscsi-target --permanent success [root@node3 ~]# firewall-cmd --reload success
5) Nova-Compute设定 [root@node2 ~]# vim /etc/nova/nova.conf ...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [cinder] os_region_name = RegionOne
[root@node2 ~]# systemctl restart openstack-nova-compute
6) 使用Cinder (1) 设定调用环境 [root@node1 ~]# su - snow [snow@node1 ~(keystone)]$ echo "export OS_VOLUME_API_VERSION=3" >> ~/keystonerc [snow@node1 ~(keystone)]$ source ~/keystonerc
(2) 创建一个2G的磁盘 [snow@node1 ~(keystone)]$ openstack volume create --size 2 disk1 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2020-03-03T13:33:42.000000 | | description | None | | encrypted | False | | id | 042b4c0b-1675-4633-965b-6e735acec0ee | | multiattach | False | | name | disk1 | | properties | | | replication_status | None | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | type | __DEFAULT__ | | updated_at | None | | user_id | d3a4d7927ebd4dfb8b6fa00d11f778f0 | +---------------------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------+-----------+------+-------------+ | 042b4c0b-1675-4633-965b-6e735acec0ee | disk1 | available | 2 | | +--------------------------------------+-------+-----------+------+-------------+
(2) 将disk1连接至实例c7 [snow@node1 ~(keystone)]$ openstack server list +---------+------+--------+---------------------------------------+-------+----------+ | ID | Name | Status | Networks | Image | Flavor | +---------+------+--------+---------------------------------------+-------+----------+ | 4b53... | c7 | ACTIVE |int_net=192.168.188.70, 192.168.10.221 | c77 | m1.small | +---------+------+--------+---------------------------------------+-------+----------+ [snow@node1 ~(keystone)]$ openstack server add volume c7 disk1
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-------+--------+------+-----------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------+--------+------+-----------------------------+ | 042b4c0b-1675-4633-965b-6e735acec0ee | disk1 | in-use | 2 | Attached to c7 on /dev/vdb | +--------------------------------------+-------+--------+------+-----------------------------+
[snow@node1 ~(keystone)]$ openstack server remove volume c7 disk1
5. 使用Cinder-NFS
1) 准备NFS Server
[root@node4 ~]# yum install nfs-utils -y
[root@node4 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node1 ~]# vim /etc/exports /nfs4cinder *(rw,no_root_squash)
[root@node4 ~]# mkdir /nfs4cinder [root@node4 ~]# systemctl enable --now rpcbind nfs-server
2) 配置Cinder服务 [root@node3 ~]# yum -y install nfs-utils
[root@node4 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node3 ~]# systemctl enable --now rpcbind
[root@node3 ~]# vim /etc/cinder/cinder.conf [DEFAULT] ...... ...... ...... ...... ...... ......
# 于[DEFAULT]区段,设定后台存储类型为LVM enabled_backends = nfs
...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [nfs] volume_driver = cinder.volume.drivers.nfs.NfsDriver nfs_shares_config = /etc/cinder/nfs-shares-dir nfs_mount_point_base = $state_path/mnt
[root@node3 ~]# vim /etc/cinder/nfs-shares-dir 192.168.10.14:/nfs4cinder

[root@node3 ~]# chmod 640 /etc/cinder/nfs-shares-dir [root@node3 ~]# chgrp cinder /etc/cinder/nfs-shares-dir [root@node3 ~]# systemctl restart openstack-cinder-volume [root@node3 ~]# chown -R cinder. /var/lib/cinder/mnt
4) Nova-Compute设定 [root@node2 ~]# yum -y install nfs-utils [root@node2 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node2 ~]# systemctl enable --now rpcbind
[root@node2 ~]# vim /etc/nova/nova.conf ...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [cinder] os_region_name = RegionOne
[root@node2 ~]# systemctl restart openstack-nova-compute
6) 使用Cinder (1) 设定调用环境 [root@node1 ~(keystone)]# su - snow [snow@node1 ~(keystone)]$ echo "export OS_VOLUME_API_VERSION=3" >> ~/keystonerc [snow@node1 ~(keystone)]$ source ~/keystonerc
(2) 创建一个2G的磁盘 [snow@node1 ~(keystone)]$ openstack volume create --size 2 disk2 +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2020-03-03T13:53:27.000000 | | description | None | | encrypted | False | | id | 9708a7ab-7443-4b3d-be3b-53569bd9481a | | multiattach | False | | name | disk2 | | properties | | | replication_status | None | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | type | __DEFAULT__ | | updated_at | None | | user_id | d3a4d7927ebd4dfb8b6fa00d11f778f0 | +---------------------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------+-----------+------+-------------+ | 9708a7ab-7443-4b3d-be3b-53569bd9481a | disk2 | available | 2 | | +--------------------------------------+-------+-----------+------+-------------+
(2) 将disk1连接至实例c7 [snow@node1 ~(keystone)]$ openstack server list +---------+------+--------+---------------------------------------+-------+----------+ | ID | Name | Status | Networks | Image | Flavor | +---------+------+--------+---------------------------------------+-------+----------+ | 4853... | c7 | ACTIVE |int_net=192.168.188.70, 192.168.10.221 | c77 | m1.small | +---------+------+--------+---------------------------------------+-------+----------+ [snow@node1 ~(keystone)]$ openstack server add volume c7 disk2
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-------+--------+------+-----------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-------+--------+------+-----------------------------+ | 9708a7ab-7443-4b3d-be3b-53569bd9481a | disk2 | in-use | 2 | Attached to c7 on /dev/vdb | +--------------------------------------+-------+--------+------+-----------------------------+
[snow@node1 ~(keystone)]$ openstack server remove volume c7 disk2
6. 使用Cinder-LVM+NFS
1) 准备NFS Server
[root@node4 ~]# yum install nfs-utils -y
[root@node4 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node4 ~]# vim /etc/exports /nfs4cinder *(rw,no_root_squash)
[root@node4 ~]# mkdir /nfs4cinder [root@node4 ~]# systemctl enable --now rpcbind nfs-server
2) 配置Cinder服务 [root@node3 ~]# fdisk /dev/vdb [root@node3 ~]# pvcreate /dev/vdb1 [root@node3 ~]# vgcreate -s 32M snowvg /dev/vdb1 Physical volume "/dev/vdb1" successfully created. Volume group "snowvg" successfully created [root@node3 ~]# yum -y install nfs-utils
[root@node3 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node3 ~]# systemctl enable --now rpcbind
[root@node3 ~]# vim /etc/cinder/cinder.conf # 于[DEFAULT]区段,设定后台存储类型为LVM [DEFAULT] ...... ...... ...... ...... ...... ......
enabled_backends = lvm,nfs
...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [lvm] target_helper = lioadm target_protocol = iscsi target_ip_address = 192.168.10.13 volume_backend_name = LVM volume_group = snowvg volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volumes_dir = $state_path/volumes
[nfs] volume_driver = cinder.volume.drivers.nfs.NfsDriver nfs_shares_config = /etc/cinder/nfs-shares-dir nfs_mount_point_base = $state_path/mnt

[root@node3 ~]# vim /etc/cinder/nfs-shares-dir 192.168.10.14:/nfs4cinder
[root@node3 ~]# chmod 640 /etc/cinder/nfs-shares-dir [root@node3 ~]# chgrp cinder /etc/cinder/nfs-shares-dir [root@node3 ~]# systemctl restart openstack-cinder-volume [root@node3 ~]# chown -R cinder. /var/lib/cinder/mnt
4) Nova-Compute设定 [root@node2 ~]# yum -y install nfs-utils [root@node2 ~]# vim /etc/idmapd.conf # 更改第5行,域名为1000cc.net Domain = 1000cc.net
[root@node2 ~]# systemctl enable --now rpcbind
[root@node2 ~]# vim /etc/nova/nova.conf ...... ...... ...... ...... ...... ......
# 于文件最后追加如下内容 [cinder] os_region_name = RegionOne
[root@node2 ~]# systemctl restart openstack-nova-compute
6) 使用Cinder (1) 创建磁盘类型 [root@node1 ~(keystone)]# echo "export OS_VOLUME_API_VERSION=3" >> ~/keystonerc [root@node1 ~(keystone)]# source ~/keystonerc [root@node1 ~(keystone)]# openstack volume type create lvm +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | description | None | | id | 3fb0c84f-8bd2-4e9e-84b3-baa46eb857d8 | | is_public | True | | name | lvm | +-------------+--------------------------------------+
[root@node1 ~(keystone)]# openstack volume type create nfs +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | description | None | | id | a0999a3c-94b2-418b-9a57-dda3eae27a1e | | is_public | True | | name | nfs | +-------------+--------------------------------------+
[root@node1 ~(keystone)]# openstack volume type list +--------------------------------------+-------------+-----------+ | ID | Name | Is Public | +--------------------------------------+-------------+-----------+ | a0999a3c-94b2-418b-9a57-dda3eae27a1e | nfs | True | | 3fb0c84f-8bd2-4e9e-84b3-baa46eb857d8 | lvm | True | | b6d8a404-dbd3-4fbc-8c4d-dd5429940480 | __DEFAULT__ | True | +--------------------------------------+-------------+-----------+
(2) 设定调用环境并创建磁盘 [root@node1 ~(keystone)]# su - snow
[snow@node1 ~(keystone)]$ openstack volume create --type lvm --size 2 disk1_lvm +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2020-03-03T14:16:03.000000 | | description | None | | encrypted | False | | id | 756781b5-5300-4a54-84fd-0b16dd4c204e | | multiattach | False | | name | disk1_lvm | | properties | | | replication_status | None | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | type | lvm | | updated_at | None | | user_id | d3a4d7927ebd4dfb8b6fa00d11f778f0 | +---------------------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume create --type nfs --size 2 disk1_nfs +---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | attachments | [] | | availability_zone | nova | | bootable | false | | consistencygroup_id | None | | created_at | 2020-03-03T14:16:30.000000 | | description | None | | encrypted | False | | id | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | | multiattach | False | | name | disk1_nfs | | properties | | | replication_status | None | | size | 2 | | snapshot_id | None | | source_volid | None | | status | creating | | type | nfs | | updated_at | None | | user_id | d3a4d7927ebd4dfb8b6fa00d11f778f0 | +---------------------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-----------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+-----------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | available | 2 | | +--------------------------------------+-----------+-----------+------+-------------+
(2) 将disk1连接至实例c7 [snow@node1 ~(keystone)]$ openstack server list +---------+------+--------+---------------------------------------+-------+----------+ | ID | Name | Status | Networks | Image | Flavor | +---------+------+--------+---------------------------------------+-------+----------+ | 4853... | c7 | ACTIVE |int_net=192.168.188.70, 192.168.10.221 | c77 | m1.small | +---------+------+--------+---------------------------------------+-------+----------+
[snow@node1 ~(keystone)]$ openstack server add volume c7 disk1_lvm [snow@node1 ~(keystone)]$ openstack server add volume c7 disk1_nfs [snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-----------+--------+------+-----------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+--------+------+-----------------------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | in-use | 2 | Attached to c7 on /dev/vdc | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | in-use | 2 | Attached to c7 on /dev/vdb | +--------------------------------------+-----------+--------+------+-----------------------------+
[snow@node1 ~(keystone)]$ openstack server remove volume c7 disk1_lvm [snow@node1 ~(keystone)]$ openstack server remove volume c7 disk1_nfs [snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-----------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+-----------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | available | 2 | | +--------------------------------------+-----------+-----------+------+-------------+
7. Cinder备份服务实现
1) 配置NFS服务
[root@node4 ~]# yum install nfs-utils -y
[root@node4 ~]# vim /etc/idmapd.conf
Domain = 1000cc.net
[root@node4 ~]# vim /etc/exports /cinder4backup *(rw,no_root_squash)
[root@node4 ~]# mkdir /cinder4backup [root@node4 ~]# systemctl enable --now rpcbind nfs-server
2) 修改存储节点配置 [root@node3 ~]# yum install nfs-utils -y
[root@node3 ~]# vim /etc/idmapd.conf Domain = 1000cc.net
[root@node3 ~]# systemctl enable --now rpcbind
[root@node3 ~]# vim /etc/cinder/cinder.conf # 于[DEFAULT]区段最后追加如下内容 [DEFAULT] ...... ...... ...... ...... ...... ......
backup_driver = cinder.backup.drivers.nfs.NFSBackupDriver backup_mount_point_base = $state_path/backup_nfs backup_share = 192.168.10.14:/cinder4backup
[root@node3 ~]# systemctl enable --now openstack-cinder-backup [root@node3 ~]# chown -R cinder. /var/lib/cinder/backup_nfs
3) 使用Backup Service # 显示现有Volume [snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-----------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+-----------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | available | 2 | | +--------------------------------------+-----------+-----------+------+-------------+
(1) 对disk1_lvm卷建立一个完整备份 [snow@node1 ~(keystone)]$ openstack volume backup create --name backup-disk1_lvm disk1_lvm +-------+--------------------------------------+ | Field | Value | +-------+--------------------------------------+ | id | c25451da-ffa9-45a2-afc1-4c6332ec9b4b | | name | backup-disk1_lvm | +-------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume backup list +--------------------------------------+------------------+-------------+----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+------------------+-------------+----------+------+ | d6f2d29d-0e67-4838-8bf5-53f4917c2d08 | backup-disk1_lvm | None | creating | 2 | +--------------------------------------+------------------+-------------+----------+------+
[snow@node1 ~(keystone)]$ openstack volume backup list +--------------------------------------+------------------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+------------------+-------------+-----------+------+ | d6f2d29d-0e67-4838-8bf5-53f4917c2d08 | backup-disk1_lvm | None | available | 2 | +--------------------------------------+------------------+-------------+-----------+------+
(2) 增量备份 [snow@node1 ~(keystone)]$ openstack volume backup create --name backup-disk1_lvm-1 --incremental disk1_lvm +-------+--------------------------------------+ | Field | Value | +-------+--------------------------------------+ | id | 7e6e72e9-df98-45af-beb2-2a2d86e4971c | | name | backup-disk1_lvm-1 | +-------+--------------------------------------+
[snow@node1 ~(keystone)]$ openstack volume backup list +--------------------------------------+--------------------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+--------------------+-------------+-----------+------+ | 7e6e72e9-df98-45af-beb2-2a2d86e4971c | backup-disk1_lvm-1 | None | creating | 2 | | d6f2d29d-0e67-4838-8bf5-53f4917c2d08 | backup-disk1_lvm | None | available | 2 | +--------------------------------------+--------------------+-------------+-----------+------+
[snow@node1 ~(keystone)]$ openstack volume backup list +--------------------------------------+--------------------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+--------------------+-------------+-----------+------+ | 7e6e72e9-df98-45af-beb2-2a2d86e4971c | backup-disk1_lvm-1 | None | available | 2 | | d6f2d29d-0e67-4838-8bf5-53f4917c2d08 | backup-disk1_lvm | None | available | 2 | +--------------------------------------+--------------------+-------------+-----------+------+
# 如果备份的目标盘正在被实例所使用,可以加--force参数 [snow@node1 ~(keystone)]$ openstack volume backup create --name backup-disk1_lvm-1 --incremental --force disk1_lvm
(3) 恢复备份 [snow@node1 ~(keystone)]$ openstack volume backup list +--------------------------------------+--------------------+-------------+-----------+------+ | ID | Name | Description | Status | Size | +--------------------------------------+--------------------+-------------+-----------+------+ | 7e6e72e9-df98-45af-beb2-2a2d86e4971c | backup-disk1_lvm-1 | None | available | 2 | | d6f2d29d-0e67-4838-8bf5-53f4917c2d08 | backup-disk1_lvm | None | available | 2 | +--------------------------------------+--------------------+-------------+-----------+------+
[snow@node1 ~(keystone)]$ openstack volume list +--------------------------------------+-----------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+-----------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | available | 2 | | +--------------------------------------+-----------+-----------+------+-------------+
[snow@node1 ~(keystone)]$ openstack volume backup restore backup-disk1_lvm-1 disk1_lvm +-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | backup_id | 7e6e72e9-df98-45af-beb2-2a2d86e4971c | | volume_id | 756781b5-5300-4a54-84fd-0b16dd4c204e | | volume_name | disk1_lvm | +-------------+--------------------------------------+ [snow@node1 ~(keystone)]$ openstack volume list # 查看当前状态 +--------------------------------------+-----------+------------------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+------------------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | 756781b5-5300-4a54-84fd-0b16dd4c204e | disk1_lvm | restoring-backup | 2 | | +--------------------------------------+-----------+------------------+------+-------------+
[snow@node1 ~(keystone)]$ openstack volume list # 恢复完成 +--------------------------------------+-----------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+-----------+-----------+------+-------------+ | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_nfs | available | 2 | | | ba07c93a-8b13-4f4b-9ee7-15927aa25e14 | disk1_lvm | available | 2 | | +--------------------------------------+-----------+-----------+------+-------------+

 

如对您有帮助,请随缘打个赏。^-^

gold