Cinder


Cinder采用的是松散的架構理念,由cinder-api統一管理外部對cinder的調用,cinder-scheduler負責調度合適的節點去構建volume存儲。volume-provider通過driver負責具體的存儲空間,然后cinder內部依舊通過消息隊列queue溝通,解耦各子服務支持異步調用

存儲技術

DAS(直接附加存儲):將存儲設備通過 SCSI 線纜或 FC(FiberChannel)直接連接到服務器上

NAS(網絡附加存儲):按照 TCP/IP 協議進行通信,以文件的 I/O 方式進行數據傳 輸。它擁有自己的文件系統,通過網絡文件系統 NFS 或通用文件系統 CIFS (common Internet file system)對外提供文件訪問服務

SAN(存儲區域網絡):SAN 是一種通過網絡方式連接存儲設備和應用服務器的架 構。這個網絡專用於服務器和存儲設備之間的訪問。SAN 代表的是一種專用於存 儲的網絡架構,與協議和設備類型無關。有 FC SAN 和 IP SAN 兩種方案

存儲方式

對象存儲(swift):基於文件系統,通過文件系統來存儲訪問數據

塊存儲(cinder):是以塊為基本單元的存儲方式,其傳輸不存在數據打包/解包 的過程,可提供更高的傳輸性能

文件存儲設備通過以太網與服務器連接。服務器通過 NFS、CIFS、HTTP、FTP 等 協議進行數據訪問。數據通過以太網傳輸,有打包/解包的過程

OpenStack 塊存儲服務——cinder:目前,cinder 對本地存儲和 NAS 的支持比較不錯,可以提供完整的 Cinder API V2 支持,而對於其他類型的存儲設備,Cinder 的支持會受到一些限制

volumetype 是卷的一種標識,各個 OpenStack 的發行者可根據自身對系統的約束 來定義卷類型的使用

 

計算節點存儲

主要用來給虛擬機提供系統盤空間(和 cinder 的后端存儲不同),所以我們一般 會把虛擬機的磁盤目錄(默認是/var/lib/nova/instances)作為單獨的掛載點,提 供一個較大的空間,一是可以滿足創建虛擬機對存儲空間的需求,二是可以滿足 虛擬機遷移的需求

1.使用獨立的存儲共享

需要一個獨立的共享存儲節點,典型的是使用 NFS 服務器,意味着虛擬 機和它的存儲不在一個節點上,對應的,對這兩類節點的要求也不一樣:計算節 點可能需要更多地 CPU 和內存,而存儲節點需要關注磁盤 IO 性能

優勢:

1) 降低計算節點維護成本,不影響虛擬機當前的運行狀態

2) 計算節點的宕機不會引起虛擬機的磁盤數據丟失

3) 虛擬機遷移功能效率更高

4)共享存儲可以用作他用

劣勢:

1) 需要額外的存儲節點

2) 一些重負載的虛擬機可能會影響其他虛擬機的性能,無論是否在同一節點

3) 因為需要通過網絡訪問存儲資源,性能不會很好

4) 使用統一共享存儲

2.不使用獨立的存儲節點(典型的如 Ceph、sheepdog 等),而是將計算節點上 的存儲連接起來形成一個存儲池,提供共享、高可靠、高可用的存儲特性

優勢:

1)不需要額外的存儲節點

2)充分利用分布式存儲的優勢

劣勢:

1)因為中間層的存在,會失去對磁盤的邏輯管理

2)對虛擬機數據的恢復變得復雜

3)這種方式仍然需要從網絡訪問存儲資源,降低性能

4)本地存儲

3.最常見的方式,不需要額外的配置

優勢:

1)重負載的虛擬機不會對其他節點的虛擬機造成影響

2)因為是直接磁盤 IO,性能是最好的(配合 SSD 效果更好)

劣勢:

1)無共享,意味着一個節點宕機會造成該節點上虛擬機數據不可用

2)虛擬機遷移變得復雜

 

cinder架構

OpenStack 到 Folsom 版本有比較大的改變,其中之一就是將之前在 Nova 中的部分持久性塊存儲功能(Nova-Volume)分離了出來,獨立為新的組件 Cinder。 主要核心是對卷的管理,允許對卷、卷的類型、卷的快照進行處理。它並沒有實 現對塊設備的管理和實際服務,而是為后端不同的存儲結構提供了統一的接口, 不同的塊設備服務廠商在 Cinder 中實現其驅動支持以與 OpenStack 進行整合

 

卷類型管理

創建卷類型

[root@controller ~]# cinder type-create lvm / nfs     
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

查看卷類型信息

[root@controller ~]# cinder type-list
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | lvm  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

更新卷類型信息

[root@controller ~]# cinder type-update --name nfs ddad594c-6dc7-483a-ab0f-094da136b70a
+--------------------------------------+------+-------------+-----------+
| ID                                   | Name | Description | Is_Public |
+--------------------------------------+------+-------------+-----------+
| ddad594c-6dc7-483a-ab0f-094da136b70a | nfs  | -           | True      |
+--------------------------------------+------+-------------+-----------+

 

卷管理

創建卷

[root@controller ~]# cinder create --name block1 --volume-type lvm 1
+--------------------------------+--------------------------------------+
| Property                       | Value                                |
+--------------------------------+--------------------------------------+
| attachments                    | []                                   |
| availability_zone              | nova                                 |
| bootable                       | false                                |
| consistencygroup_id            | None                                 |
| created_at                     | 2021-12-07T02:10:02.000000           |
| description                    | None                                 |
| encrypted                      | False                                |
| id                             | 901ba104-3f4f-4b6d-a73d-ab100135479b |
| metadata                       | {}                                   |
| migration_status               | None                                 |
| multiattach                    | False                                |
| name                           | block1                               |
| os-vol-host-attr:host          | None                                 |
| os-vol-mig-status-attr:migstat | None                                 |
| os-vol-mig-status-attr:name_id | None                                 |
| os-vol-tenant-attr:tenant_id   | 2f1b48e86a2f4e1ab59730d9fff7c584     |
| replication_status             | None                                 |
| size                           | 1                                    |
| snapshot_id                    | None                                 |
| source_volid                   | None                                 |
| status                         | creating                             |
| updated_at                     | None                                 |
| user_id                        | d4463a3c93fc41429ab215bf04418374     |
| volume_type                    | lvm                                  |
+--------------------------------+--------------------------------------+

 

掛載卷

# nova volume-attach {雲主機id} {卷id}

[root@controller ~]# nova volume-attach b5a3e477-33a0-49fe-af90-78c9b44d39bb 901ba104-3f4f-4b6d-a73d-ab100135479b
+----------+--------------------------------------+
| Property | Value                                |
+----------+--------------------------------------+
| device   | /dev/vdb                             |
| id       | 901ba104-3f4f-4b6d-a73d-ab100135479b |
| serverId | b5a3e477-33a0-49fe-af90-78c9b44d39bb |
| volumeId | 901ba104-3f4f-4b6d-a73d-ab100135479b |
+----------+--------------------------------------+

 

卸載卷

[root@controller ~]# nova volume-detach b5a3e477-33a0-49fe-af90-78c9b44d39bb 901ba104-3f4f-4b6d-a73d-ab100135479b

 

查看卷

[root@controller ~]# openstack volume list
+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 901ba104-3f4f-4b6d-a73d-ab100135479b | block1 | available |    1 |             |
+--------------------------------------+--------+-----------+------+-------------+

[root@controller ~]# cinder list
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| ID                                   | Status    | Name   | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| 901ba104-3f4f-4b6d-a73d-ab100135479b | available | block1 | 1    | lvm         | false    |             |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+

 

重命名卷

# cinder rename block1 <volume_name>

[root@controller ~]# cinder rename block1 block

 

修改狀態

# cinder rest-state available/false <volume_name>

 

擴容

# cinder migrate <volume_name> <host>

 

遷移

# cinder migrate <volume_name> <host>

 

刪除卷

[root@controller ~]# cinder delete block1

 


Snapshot管理

查看snapshot信息

[root@controller ~]# cinder snapshot-list 
+----+-----------+--------+------+------+
| ID | Volume ID | Status | Name | Size |
+----+-----------+--------+------+------+
+----+-----------+--------+------+------+

 

創建snapshot

[root@controller ~]# cinder snapshot-create --name backhot volume 

 

刪除snapshot

[root@controller ~]# cinder snapshot-delete backhot

 

cinder擴容

某公司出現塊存儲的空間不足的情況,需要擴容,這時候計算節點就要多分出一個區,加入到cinder塊存儲的后端存儲去

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM