主頁 > 作業系統 > 云計算管理平臺之OpenStack塊存盤服務cinder

云計算管理平臺之OpenStack塊存盤服務cinder

2020-11-03 08:34:56 作業系統

  一、cinder簡介

  cinder是openstack環境中的塊存盤服務,主要為運行在openstack之上的虛擬機提供塊存盤服務的;所謂塊存盤就是我們經常用的硬碟呀,U盤啊,SD卡等等這些塊設備的,這里不同我們生活中看到的那樣的磁盤,這里我們可以理解為類似云盤的東西;對于cinder來講,它主要由三個組件組成,cinder-api、cinder-scheduler、cinder-volume;其中cinder-api和cinder-scheduler這兩個組件通常部署在在控制節點,cinder-volume通常部署在storage節點;cinder-volume主要作用是通過接收openstack控制節點上cinder-scheduler發送過來的請求,進行卷管理;cinder-api主要作用是接收請求,并將請求負責丟到對應的佇列中去;cinder-scheduler主要負責調度后面的cinder-volume來完成管理卷;

  cinder架構

  cinder作業程序:首先客戶端會把請求發送給cinder-api,cinder-api接收請求,并將其放到對應的訊息佇列中;然后cinder-scheduler從對應的訊息佇列取出用戶的請求進行調度,把最終的調度結果放到對應的訊息佇列中去,同時也往資料庫中保存一份;在cinder-scheduler把調度結果放到訊息佇列中去以后,對應的cinder-volume會從對應的訊息佇列取出訊息在本地執行,最后把執行的狀態資訊寫一份到資料庫,同時把執行的狀態放到訊息佇列,從而讓cinder-api把對應的結果回傳給客戶端;大致作業流程就是這樣;

   二、cinder服務安裝配置

  1、在控制節點安裝配置cinder-api、cinder-scheduler

  創建cinder資料庫以及相關訪問資料庫的用戶和授權

[root@node02 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 318
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.01 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'  IDENTIFIED BY 'cinder';
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

  驗證:在其他節點使用cinder用戶登錄資料庫,看看創建的cinder用戶是否可以正常登錄資料庫?

[root@node01 ~]# mysql -ucinder -pcinder -hnode02
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 319
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)]> show databases;
+--------------------+
| Database           |
+--------------------+
| cinder             |
| information_schema |
| test               |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> exit
Bye
[root@node01 ~]# 

  在控制節點上匯出admin用戶環境變數,創建cinder用戶并將其域指向default,密碼設定為cinder

[root@node01 ~]# source admin.sh 
[root@node01 ~]# openstack user create --domain default --password-prompt cinder
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field               | Value                            |
+---------------------+----------------------------------+
| domain_id           | 47c0915c914c49bb8670703e4315a80f |
| enabled             | True                             |
| id                  | a795dd0941e942da85291177fe434f60 |
| name                | cinder                           |
| options             | {}                               |
| password_expires_at | None                             |
+---------------------+----------------------------------+
[root@node01 ~]# 

  將cinder用戶添加到service專案,并授權為admin角色權限

[root@node01 ~]# openstack role add --project service --user cinder admin
[root@node01 ~]# 

  創建cinderv2和cinderv3服務

[root@node01 ~]#  openstack service create --name cinderv2 \
>   --description "OpenStack Block Storage" volumev2
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | 1145b9f35e3f419bb707f0d500bc2e3b |
| name        | cinderv2                         |
| type        | volumev2                         |
+-------------+----------------------------------+
[root@node01 ~]# openstack service create --name cinderv3 \
>   --description "OpenStack Block Storage" volumev3
+-------------+----------------------------------+
| Field       | Value                            |
+-------------+----------------------------------+
| description | OpenStack Block Storage          |
| enabled     | True                             |
| id          | aa142423921d408db8ba8dc7e48784f0 |
| name        | cinderv3                         |
| type        | volumev3                         |
+-------------+----------------------------------+
[root@node01 ~]# 

  提示:cinder有兩個版本,這兩個版本都要創建服務端點;

  分別注冊cinderv2和cinderv3到公共、私有、管理端點

  cinderv2公共端點

[root@node01 ~]# openstack endpoint create --region RegionOne \
>   volumev2 public http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | b60100d78284490a886b8b134f730b76         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 1145b9f35e3f419bb707f0d500bc2e3b         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  cinderv2私有端點

[root@node01 ~]# openstack endpoint create --region RegionOne \
>   volumev2 internal http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 8c5b226eab8e4882af33e09e91f5a478         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 1145b9f35e3f419bb707f0d500bc2e3b         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  cinderv2管理端點

[root@node01 ~]#  openstack endpoint create --region RegionOne \
>   volumev2 admin http://controller:8776/v2/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | b0d35d4b02954fe0a335f8e94365471d         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | 1145b9f35e3f419bb707f0d500bc2e3b         |
| service_name | cinderv2                                 |
| service_type | volumev2                                 |
| url          | http://controller:8776/v2/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  cinderv3公共端點

[root@node01 ~]# openstack endpoint create --region RegionOne \
>   volumev3 public http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | dff608b23a6b45cebb44d54c7ff68718         |
| interface    | public                                   |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | aa142423921d408db8ba8dc7e48784f0         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  cinderv3私有端點

[root@node01 ~]# openstack endpoint create --region RegionOne \
>   volumev3 internal http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 240ea84001e740c7b1514122e38cdca8         |
| interface    | internal                                 |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | aa142423921d408db8ba8dc7e48784f0         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  cinderv3管理端點

[root@node01 ~]# openstack endpoint create --region RegionOne \
>   volumev3 admin http://controller:8776/v3/%\(project_id\)s
+--------------+------------------------------------------+
| Field        | Value                                    |
+--------------+------------------------------------------+
| enabled      | True                                     |
| id           | 19b83da138564fb586ddd0f9edf57c67         |
| interface    | admin                                    |
| region       | RegionOne                                |
| region_id    | RegionOne                                |
| service_id   | aa142423921d408db8ba8dc7e48784f0         |
| service_name | cinderv3                                 |
| service_type | volumev3                                 |
| url          | http://controller:8776/v3/%(project_id)s |
+--------------+------------------------------------------+
[root@node01 ~]# 

  安裝openstack-cinder軟體包

[root@node01 ~]# yum install openstack-cinder -y

  編輯組態檔/etc/cinder/cinder.conf,在【database】配置段配置連接cinder資料庫的地址

  在【DEFAULT】配置段配置使用keystone來做認證以及rabbitmq連接地址

  在【keystone_authtoken】配置段配置去keystone認證的相關資訊

  在【DEFAULT】配置段配置my_ip為本地ip地址

  在【oslo_concurrency】配置段配置存放鎖檔案路徑

  cinder.conf的最終配置

[root@node01 ~]# grep -i ^"[a-z\[]" /etc/cinder/cinder.conf
[DEFAULT]
transport_url = rabbit://openstack:openstack123@node02
auth_strategy = keystone
my_ip = 192.168.0.41
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:cinder@node02/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = node02:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[profiler]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
[root@node01 ~]# 

  填充資料庫

[root@node01 ~]# su -s /bin/sh -c "cinder-manage db sync" cinder
Deprecated: Option "logdir" from group "DEFAULT" is deprecated. Use option "log-dir" from group "DEFAULT".
[root@node01 ~]# 

  驗證:在cinder庫中,查看是否有表生成?

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 tables;
+----------------------------+
| Tables_in_cinder           |
+----------------------------+
| attachment_specs           |
| backup_metadata            |
| backups                    |
| cgsnapshots                |
| clusters                   |
| consistencygroups          |
| driver_initiator_data      |
| encryption                 |
| group_snapshots            |
| group_type_projects        |
| group_type_specs           |
| group_types                |
| group_volume_type_mapping  |
| groups                     |
| image_volume_cache_entries |
| messages                   |
| migrate_version            |
| quality_of_service_specs   |
| quota_classes              |
| quota_usages               |
| quotas                     |
| reservations               |
| services                   |
| snapshot_metadata          |
| snapshots                  |
| transfers                  |
| volume_admin_metadata      |
| volume_attachment          |
| volume_glance_metadata     |
| volume_metadata            |
| volume_type_extra_specs    |
| volume_type_projects       |
| volume_types               |
| volumes                    |
| workers                    |
+----------------------------+
35 rows in set (0.00 sec)

MariaDB [cinder]> 

  編輯控制節點/etc/nova/nova.conf組態檔,在【cinder】配置段配置nova使用cinder服務

[cinder]
os_region_name = RegionOne

  重啟nova服務

[root@node01 ~]# systemctl restart openstack-nova-api.service 
[root@node01 ~]# ss -tnl
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:9292                                                *:*                  
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      100                             127.0.0.1:25                                                  *:*                  
LISTEN     0      100                                     *:6080                                                *:*                  
LISTEN     0      128                                     *:9696                                                *:*                  
LISTEN     0      128                                     *:8774                                                *:*                  
LISTEN     0      128                                     *:8775                                                *:*                  
LISTEN     0      128                                     *:9191                                                *:*                  
LISTEN     0      128                                    :::80                                                 :::*                  
LISTEN     0      128                                    :::22                                                 :::*                  
LISTEN     0      100                                   ::1:25                                                 :::*                  
LISTEN     0      128                                    :::5000                                               :::*                  
LISTEN     0      128                                    :::8778                                               :::*                  
[root@node01 ~]# 

  提示:重啟請確保nova-api服務所監聽埠(8774/8775)處于正常監聽;

  啟動cinder-api和cinder-scheduler服務,并將其設定為開機啟動

[root@node01 ~]# systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
[root@node01 ~]# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
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.
[root@node01 ~]# ss -tnl
State      Recv-Q Send-Q                      Local Address:Port                                     Peer Address:Port              
LISTEN     0      128                                     *:9292                                                *:*                  
LISTEN     0      128                                     *:22                                                  *:*                  
LISTEN     0      100                             127.0.0.1:25                                                  *:*                  
LISTEN     0      100                                     *:6080                                                *:*                  
LISTEN     0      128                                     *:9696                                                *:*                  
LISTEN     0      128                                     *:8774                                                *:*                  
LISTEN     0      128                                     *:8775                                                *:*                  
LISTEN     0      128                                     *:9191                                                *:*                  
LISTEN     0      128                                     *:8776                                                *:*                  
LISTEN     0      128                                    :::80                                                 :::*                  
LISTEN     0      128                                    :::22                                                 :::*                  
LISTEN     0      100                                   ::1:25                                                 :::*                  
LISTEN     0      128                                    :::5000                                               :::*                  
LISTEN     0      128                                    :::8778                                               :::*                  
[root@node01 ~]# 

  提示:請確保8776埠處于正常監聽就說明cinder服務啟動正常;或者直接查看有沒有cinder行程啟動,以此來判斷cinder服務是否都啟動正常;如下

  到此,在控制節點安裝配置cinder-api和cinder-scheduler服務就完成了;

  2、在cinder storage節點安裝配置cinder-volume服務

  storage node 環境說明,配置好yum倉庫,時間同步,以及主機名決議等等;有關基礎環境的配置,請參考https://www.cnblogs.com/qiuhom-1874/p/13886693.html;為了演示,我在node05上附加了三塊20g的硬碟,方便待會測驗;

  準備好基礎環境后,接下來開始cinder-volume服務需要的包

[root@node05 ~]# yum install lvm2 device-mapper-persistent-data -y

  啟動lvm2-lvmetad服務并將其設定為開機啟動

[root@node05 ~]# systemctl start lvm2-lvmetad.service
[root@node05 ~]# systemctl enable lvm2-lvmetad.service
[root@node05 ~]# 

  查看node05上的硬碟

  把/dev/sdb整塊盤創建一個pv

[root@node05 ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
[root@node05 ~]#

  創建vg

[root@node05 ~]# vgcreate cinder-volumes /dev/sdb
  Volume group "cinder-volumes" successfully created
[root@node05 ~]# 

  編輯lvm組態檔/etc/lvm/lvm.conf,將其只允許掃描我們附加的三塊磁盤和本地/dev/sda,默認lvm會掃描整個/dev下的所有設備

  安裝openstack-cinder targetcli python-keystone包

[root@node05 ~]# yum install openstack-cinder targetcli python-keystone -y

  編輯組態檔/etc/cinder/cinder.conf,在【database】配置段配置連接cinder資料庫相關資訊

  在【DEFAULT】配置段配置連接rabbitmq相關資訊,配置認證策略為keystone,配置my_ip為本地和控制節點通信網卡ip地址

  在【keystone_authtoken】配置段配置去keystone認證相關資訊

  在【lvm】配置段配置連接lvm相關驅動,vg,以及使用的傳輸協議;默認組態檔中沒有【lvm】配置段,我們可以在組態檔的末尾添加【lvm】配置段,把對應要配置的內容配置上就好;

[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm

  提示:這里的volume_group要和我們之前創建的vg名稱保持一致;

  在【DEFAULT】配置段開啟lvm back end,以及連接glance服務的地址

  在【oslo_concurrency】配置鎖路徑

  cinder.conf最終配置

[root@node05 ~]# 
[root@node05 ~]# grep -i ^"[a-z\[]" /etc/cinder/cinder.conf
[DEFAULT]
my_ip = 192.168.0.45
transport_url = rabbit://openstack:openstack123@node02
auth_strategy = keystone
enabled_backends = lvm
glance_api_servers = http://controller:9292
[backend]
[backend_defaults]
[barbican]
[brcd_fabric_example]
[cisco_fabric_example]
[coordination]
[cors]
[database]
connection = mysql+pymysql://cinder:cinder@node02/cinder
[fc-zone-manager]
[healthcheck]
[key_manager]
[keystone_authtoken]
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = node02:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = cinder
[matchmaker_redis]
[nova]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_kafka]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
[oslo_messaging_zmq]
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[profiler]
[sample_remote_file_source]
[service_user]
[ssl]
[vault]
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
[root@node05 ~]# 

  啟動服務,并將其設定為開機啟動

[root@node05 ~]# systemctl start openstack-cinder-volume.service target.service
[root@node05 ~]# systemctl enable openstack-cinder-volume.service target.service      
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.
[root@node05 ~]# 

  驗證:查看服務是否正常啟動

  提示:能夠看到cinder-volume行程啟動,說明服務啟動沒有問題;

  到此,在storage node上的配置就完成了;

  驗證:在控制節點匯出admin用戶環境變數,使用openstack volume service list命令,看看是否能夠列出服務組件資訊?

[root@node01 ~]# source admin.sh 
[root@node01 ~]# openstack volume service list
+------------------+---------------------+------+---------+-------+----------------------------+
| Binary           | Host                | Zone | Status  | State | Updated At                 |
+------------------+---------------------+------+---------+-------+----------------------------+
| cinder-volume    | node05.test.org@lvm | nova | enabled | up    | 2020-11-02T13:58:10.000000 |
| cinder-scheduler | node01.test.org     | nova | enabled | up    | 2020-11-02T13:58:10.000000 |
+------------------+---------------------+------+---------+-------+----------------------------+
[root@node01 ~]# 

  提示:能夠列出cinder-scheduler和cinder-volume這兩個組件就表示我們在控制節點和storage 節點上安裝的組件沒有問題;

  驗證:匯出demo用戶環境,創建卷,看看是否能夠正常創建?

[root@node01 ~]# source demo.sh 
[root@node01 ~]# openstack volume create --size 1 volume1
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2020-11-02T14:16:37.000000           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | f41c1ad9-8fb3-426c-bb63-33dafabfd47d |
| multiattach         | False                                |
| name                | volume1                              |
| properties          |                                      |
| replication_status  | None                                 |
| size                | 1                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| updated_at          | None                                 |
| user_id             | 5453d68782a34429a7dab7da9c51f0d9     |
+---------------------+--------------------------------------+
[root@node01 ~]# 

  查看當前用戶的卷串列

[root@node01 ~]# openstack volume list
+--------------------------------------+---------+-----------+------+-------------+
| ID                                   | Name    | Status    | Size | Attached to |
+--------------------------------------+---------+-----------+------+-------------+
| f41c1ad9-8fb3-426c-bb63-33dafabfd47d | volume1 | available |    1 |             |
+--------------------------------------+---------+-----------+------+-------------+
[root@node01 ~]# 

  在storage 節點上查看邏輯卷,看看是否有我們剛才創建的卷呢?

  將卷附加到某個虛擬機實體上

[root@node01 ~]# openstack server list
+--------------------------------------+-----------+---------+----------------------------------------------+--------+---------+
| ID                                   | Name      | Status  | Networks                                     | Image  | Flavor  |
+--------------------------------------+-----------+---------+----------------------------------------------+--------+---------+
| 057103fc-97eb-4f5b-910d-beddccd3bd22 | test_vm-3 | SHUTOFF | provider-net=192.168.0.124                   | cirros | m1.nano |
| 32622be2-47dc-47c8-b0ef-c5c5c85eb9ba | test_vm-1 | SHUTOFF | provider-net=192.168.0.102                   | cirros | m1.nano |
| 5523730d-9dc4-4827-b53a-43f3c860b838 | test_vm-2 | SHUTOFF | provider-net=192.168.0.119                   | cirros | m1.nano |
| 3f220e22-50ce-4068-9b0b-cd9c07446e6c | demo_vm2  | SHUTOFF | demo_selfservice_net=10.0.1.2, 192.168.0.104 | cirros | m1.nano |
| a9f76200-0636-48ab-9eda-69526dab0653 | demo_vm1  | SHUTOFF | provider-net=192.168.0.103                   | cirros | m1.nano |
+--------------------------------------+-----------+---------+----------------------------------------------+--------+---------+
[root@node01 ~]# openstack volume list
+--------------------------------------+---------+-----------+------+-------------+
| ID                                   | Name    | Status    | Size | Attached to |
+--------------------------------------+---------+-----------+------+-------------+
| f41c1ad9-8fb3-426c-bb63-33dafabfd47d | volume1 | available |    1 |             |
+--------------------------------------+---------+-----------+------+-------------+
[root@node01 ~]# openstack server add volume demo_vm1 volume1
[root@node01 ~]# openstack volume list
+--------------------------------------+---------+--------+------+-----------------------------------+
| ID                                   | Name    | Status | Size | Attached to                       |
+--------------------------------------+---------+--------+------+-----------------------------------+
| f41c1ad9-8fb3-426c-bb63-33dafabfd47d | volume1 | in-use |    1 | Attached to demo_vm1 on /dev/vdb  |
+--------------------------------------+---------+--------+------+-----------------------------------+
[root@node01 ~]# 

  提示:可以看到當把某個卷附加給某個虛擬機實體以后,再次查看卷的狀態就變成了in-use狀態,并明確說明該卷附加在那個實體之上,并識別成那個設備;

  驗證:連接對應虛擬機,查看是否有/dev/vdb的設備附加到虛擬機上?

  在demo_vm1上對/dev/vdb進行磁區

[root@node01 ~]# ssh [email protected]
$ sudo su -
# fdisk -l /dev/vdb
Disk /dev/vdb: 1 GiB, 1073741824 bytes, 2097152 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
# fdisk  /dev/vdb

Welcome to fdisk (util-linux 2.27).
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.
Created a new DOS disklabel with disk identifier 0xcc2cfc07.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-2097151, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-2097151, default 2097151): +300M 

Created a new partition 1 of type 'Linux' and of size 300 MiB.

Command (m for help): p
Disk /dev/vdb: 1 GiB, 1073741824 bytes, 2097152 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
Disklabel type: dos
Disk identifier: 0xcc2cfc07

Device     Boot Start    End Sectors  Size Id Type
/dev/vdb1        2048 616447  614400  300M 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

# 

  格式化/dev/vdb1,并將其掛在至/mnt目錄

# mkfs.ext4 /dev/vdb1
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 307200 1k blocks and 76912 inodes
Filesystem UUID: bc228b69-bc7d-47ff-81bd-2b5a2291aa02
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

# mount /dev/vdb1 /mnt
# df -Th
Filesystem           Type            Size      Used Available Use% Mounted on
/dev                 devtmpfs       19.2M         0     19.2M   0% /dev
/dev/vda1            ext3          978.9M     24.1M    914.0M   3% /
tmpfs                tmpfs          23.2M         0     23.2M   0% /dev/shm
tmpfs                tmpfs          23.2M     88.0K     23.1M   0% /run
/dev/vdb1            ext4          282.5M      2.0M    261.5M   1% /mnt
# 

  提示:可以看到格式化成功,并成功掛載至/mnt

  復制檔案到/mnt下進行存盤,看看是否可正常存盤?

# ls -l /mnt
total 12
drwx------    2 root     root         12288 Nov  1 15:22 lost+found
# cp /etc/passwd /mnt
# ls -l /mnt
total 13
drwx------    2 root     root         12288 Nov  1 15:22 lost+found
-rw-------    1 root     root           586 Nov  1 15:24 passwd
# cat /mnt/passwd 
root:x:0:0:root:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
haldaemon:x:68:68:hald:/:/bin/sh
dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
ftp:x:83:83:ftp:/home/ftp:/bin/sh
nobody:x:99:99:nobody:/home:/bin/sh
sshd:x:103:99:Operator:/var:/bin/sh
cirros:x:1000:1000:non-root user:/home/cirros:/bin/sh
# 

  提示:可以看到可以正常的存入檔案,讀取檔案內容都沒有問題;

  重啟虛擬機,看看卷是否會自動掛載到對應虛擬機呢?

  再啟動虛擬機

  查看虛擬機是否有之前的塊設備?是否自動掛載了?資料是否有丟失?

[root@node01 ~]# ssh [email protected]
$ sudo su -
# df -Th
Filesystem           Type            Size      Used Available Use% Mounted on
/dev                 devtmpfs       19.2M         0     19.2M   0% /dev
/dev/vda1            ext3          978.9M     24.1M    914.0M   3% /
tmpfs                tmpfs          23.2M         0     23.2M   0% /dev/shm
tmpfs                tmpfs          23.2M     88.0K     23.1M   0% /run
# fdisk -l /dev/vdb
Disk /dev/vdb: 1 GiB, 1073741824 bytes, 2097152 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
Disklabel type: dos
Disk identifier: 0xcc2cfc07

Device     Boot Start    End Sectors  Size Id Type
/dev/vdb1        2048 616447  614400  300M 83 Linux
# mount /dev/vdb1 /mnt
# ls -l /mnt
total 13
drwx------    2 root     root         12288 Nov  1 15:22 lost+found
-rw-------    1 root     root           586 Nov  1 15:24 passwd
# cat /mnt/passwd
root:x:0:0:root:/root:/bin/sh
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
mail:x:8:8:mail:/var/spool/mail:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
haldaemon:x:68:68:hald:/:/bin/sh
dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
ftp:x:83:83:ftp:/home/ftp:/bin/sh
nobody:x:99:99:nobody:/home:/bin/sh
sshd:x:103:99:Operator:/var:/bin/sh
cirros:x:1000:1000:non-root user:/home/cirros:/bin/sh
# 

  提示:可以看到重啟虛擬機它并不會自動幫我們掛載,原因是我們沒有配置它自動掛載;但是虛擬機重啟以后,塊設備會自動和虛擬機關聯;我們只需要配置對應的設備開機掛載就行;

  到此cinder服務安裝配置以及測驗就完成了;這也意味著我們現有的openstack環境之上運行的虛擬機,可以擁有真正意義上的持久存盤功能;只要我們的storage 節點不故障,保存在上面的卷就沒有問題,虛擬機在卷上存盤的資料就不會丟;

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/200665.html

標籤:Linux

上一篇:centos6-增加阿里yum源

下一篇:虛擬化下Centos7 擴容根磁區

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • CA和證書

    1、在 CentOS7 中使用 gpg 創建 RSA 非對稱密鑰對 gpg --gen-key #Centos上生成公鑰/密鑰對(存放在家目錄.gnupg/) 2、將 CentOS7 匯出的公鑰,拷貝到 CentOS8 中,在 CentOS8 中使用 CentOS7 的公鑰加密一個檔案 gpg -a ......

    uj5u.com 2020-09-10 00:09:53 more
  • Kubernetes K8S之資源控制器Job和CronJob詳解

    Kubernetes的資源控制器Job和CronJob詳解與示例 ......

    uj5u.com 2020-09-10 00:10:45 more
  • VMware下安裝CentOS

    VMware下安裝CentOS 一、軟硬體準備 1 Centos鏡像準備 1.1 CentOS鏡像下載地址 下載地址 1.2 CentOS鏡像下載程序 點擊下載地址進入如下圖的網站,選擇需要下載的版本,這里選擇的是Centos8,點擊如圖所示。 決定選擇Centos8后,選擇想要的鏡像源進行下載,此 ......

    uj5u.com 2020-09-10 00:12:10 more
  • 如何使用Grep命令查找多個字串

    如何使用Grep 命令查找多個字串 大家好,我是良許! 今天向大家介紹一個非常有用的技巧,那就是使用 grep 命令查找多個字串。 簡單介紹一下,grep 命令可以理解為是一個功能強大的命令列工具,可以用它在一個或多個輸入檔案中搜索與正則運算式相匹配的文本,然后再將每個匹配的文本用標準輸出的格式 ......

    uj5u.com 2020-09-10 00:12:28 more
  • git配置http代理

    git配置http代理 經常遇到克隆 github 慢的問題,這里記錄一下幾種配置 git 代理的方法,解決 clone github 過慢。 目錄 git配置代理 git單獨配置github代理 git配置全域代理 配置終端環境變數 git配置代理 主要使用 git config 命令 git單獨 ......

    uj5u.com 2020-09-10 00:12:33 more
  • Linux npm install 裝包時提示Error EACCES permission denied解

    npm install 裝包時提示Error EACCES permission denied解決辦法 ......

    uj5u.com 2020-09-10 00:12:53 more
  • Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包

    Centos 7下安裝nginx,使用yum install nginx,提示沒有可用的軟體包。 18 (flaskApi) [root@67 flaskDemo]# yum -y install nginx 19 已加載插件:fastestmirror, langpacks 20 Loading ......

    uj5u.com 2020-09-10 00:13:13 more
  • Linux查看服務器暴力破解ssh IP

    在公網的服務器上經常遇到別人爆破你服務器的22埠,用來挖礦或者干其他嘿嘿嘿的事情~ 這種情況下正確的做法是: 修改默認ssh的22埠 使用設定密鑰登錄或者白名單ip登錄 建議服務器密碼為復雜密碼 創建普通用戶登錄服務器(root權限過大) 建立堡壘機,實作統一管理服務器 統計爆破IP [root ......

    uj5u.com 2020-09-10 00:13:17 more
  • CentOS 7系統常見快捷鍵操作方式

    Linux系統中一些常見的快捷方式,可有效提高操作效率,在某些時刻也能避免操作失誤帶來的問題。 ......

    uj5u.com 2020-09-10 00:13:31 more
  • CentOS 7作業系統目錄結構介紹

    作業系統存在著大量的資料檔案資訊,相應檔案資訊會存在于系統相應目錄中,為了更好的管理資料資訊,會將系統進行一些目錄規劃,不同目錄存放不同的資源。 ......

    uj5u.com 2020-09-10 00:13:35 more
最新发布
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:43:21 more
  • vim的常用命令

    Vim的6種基本模式 1. 普通模式在普通模式中,用的編輯器命令,比如移動游標,洗掉文本等等。這也是Vim啟動后的默認模式。這正好和許多新用戶期待的操作方式相反(大多數編輯器默認模式為插入模式)。 2. 插入模式在這個模式中,大多數按鍵都會向文本緩沖中插入文本。大多數新用戶希望文本編輯器編輯程序中一 ......

    uj5u.com 2023-04-20 08:42:36 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:26:53 more
  • 設定Windows主機的瀏覽器為wls2的默認瀏覽器

    這里以Chrome為例。 1. 準備作業 wsl是可以使用Windows主機上安裝的exe程式,出于安全考慮,默認情況下改功能是無法使用。要使用的話,終端需要以管理員權限啟動。 我這里以Windows Terminal為例,介紹如何默認使用管理員權限打開終端,具體操作如下圖所示: 2. 操作 wsl ......

    uj5u.com 2023-04-19 09:25:49 more
  • docker學習

    ###Docker概述 真實專案部署環境可能非常復雜,傳統發布專案一個只需要一個jar包,運行環境需要單獨部署。而通過Docker可將jar包和相關環境(如jdk,redis,Hadoop...)等打包到docker鏡像里,將鏡像發布到Docker倉庫,部署時下載發布的鏡像,直接運行發布的鏡像即可。 ......

    uj5u.com 2023-04-19 09:19:04 more
  • Linux學習筆記

    IP地址和主機名 IP地址 ifconfig可以用來查詢本機的IP地址,如果不能使用,可以通過install net-tools安裝。 Centos系統下ens33表示主網卡;inet后表示IP地址;lo表示本地回環網卡; 127.0.0.1表示代指本機;0.0.0.0可以用于代指本機,同時在放行設 ......

    uj5u.com 2023-04-18 06:52:01 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:50 more
  • 解決linux系統的kdump服務無法啟動的問題

    問題:專案麒麟系統服務器的kdump服務無法啟動,沒有相關日志無法定位問題。 1、查看服務狀態是關閉的,重啟系統也無法啟動 systemctl status kdump 2、修改grub引數,修改“crashkernel”為“512M(有的機器數值太大太小都會導致報錯,建議從128M開始試,或者加個 ......

    uj5u.com 2023-04-12 09:59:01 more
  • 你是不是暴露了?

    作者:袁首京 原創文章,轉載時請保留此宣告,并給出原文連接。 如果您是計算機相關從業人員,那么應該經歷不止一次網路安全專項檢查了,你肯定是收到過資訊系統技術檢測報告,要求你加強風險監測,確保你提供的系統服務堅實可靠了。 沒檢測到問題還好,檢測到問題的話,有些處理起來還是挺麻煩的,尤其是線上正在運行的 ......

    uj5u.com 2023-04-05 16:52:56 more
  • 細節拉滿,80 張圖帶你一步一步推演 slab 記憶體池的設計與實作

    1. 前文回顧 在之前的幾篇記憶體管理系列文章中,筆者帶大家從宏觀角度完整地梳理了一遍 Linux 記憶體分配的整個鏈路,本文的主題依然是記憶體分配,這一次我們會從微觀的角度來探秘一下 Linux 內核中用于零散小記憶體塊分配的記憶體池 —— slab 分配器。 在本小節中,筆者還是按照以往的風格先帶大家簡單 ......

    uj5u.com 2023-04-05 16:44:11 more