|
1 | 1 | # Infra Labs IaaS 架構
|
2 | 2 |
|
3 |
| -TODO: |
4 |
| - |
5 |
| -- [ ] 加上一些比較特殊設定的介紹 |
6 |
| - |
7 | 3 | ## 前言
|
8 | 4 |
|
9 |
| -目前 Infra Labs 透過 OpenStack 和 Ceph 來提供 Infrastructure as a Service (IaaS) 服務。本篇會介紹使用的 OpenStack 專案以及 Ceph 的架構。 |
10 |
| - |
11 |
| -設定檔以及一些 Ansible Script 將公開於 [Infra-Labs-Config repository](https://github.com/cloud-native-taiwan/Infra-Labs-Config)。 |
12 |
| - |
13 |
| -## 硬體 |
| 5 | +Infra Labs 透過 OpenStack 和 Ceph 來提供 Infrastructure as a Service (IaaS) 服務。IaaS 允許使用者透過網路以程式化的方式佈建運算、網路和儲存資源,而無需購買、管理和維護實體伺服器和基礎設施。 |
14 | 6 |
|
15 |
| -Infra Labs 使用了 9 台伺服器用於提供 IaaS 服務,規格如下: |
16 |
| - |
17 |
| -Hostname: `openstack01-03` |
18 |
| - |
19 |
| -- CPU: Intel Xeon Gold 6230R \* 2 |
20 |
| -- RAM: 32GB DDR4 2933Mhz ECC RDIMM \* 12 |
21 |
| -- NIC: |
22 |
| - - on board quad port 1G |
23 |
| - - Mellanox ConnectX-4 100GbE |
24 |
| -- Disk |
25 |
| - - Boot Disk: Intel 730 240GB \* 2 or Sandisk CloudSpeed Eco Gen II 480GB \* 2 |
26 |
| - - Ceph SSD: Samsung NGSFF PM983 3.84TB |
27 |
| - |
28 |
| -Hostname: `openstack04-05` |
29 |
| - |
30 |
| -- CPU: AMD Epyc 7413 |
31 |
| -- RAM: 32GB DDR4 3200Mhz ECC RDIMM \* 8 |
32 |
| -- NIC: |
33 |
| - - on board quad port 1G |
34 |
| - - Mellanox ConnectX-4 Lx Dual Port 25GbE |
35 |
| -- Disk |
36 |
| - - Boot Disk: Seagate Enterprise Performance 15K 900GB \* 2 |
37 |
| - - Ceph SSD: Samsung 980 1TB \* 4 |
38 |
| - - Ceph HDD: Seagate X18 16TB |
39 |
| - |
40 |
| -Hostname: `openstack06` |
41 |
| - |
42 |
| -- CPU: Xeon Silver 4110 |
43 |
| -- RAM: 32GB DDR4 2666Mhz ECC RDIMM \* 6 |
44 |
| -- NIC: |
45 |
| - - on board dual port 1GbE |
46 |
| - - Mellanox ConnectX-4 Lx Dual Port 25GbE |
47 |
| -- Disk |
48 |
| - - Boot Disk: Intel S3500 120GB \* 2 |
49 |
| - - Ceph HDD: Seagate X18 16TB |
50 |
| - |
51 |
| -Hostname: `arm01-03` |
52 |
| - |
53 |
| -- CPU: Ampere eMAG 8180 |
54 |
| -- RAM: 32GB DDR4 2400Mhz ECC RDIMM \* 2(arm03 \* 4) |
55 |
| -- NIC: |
56 |
| - - on board dual port 1GbE |
57 |
| - - Mellanox ConnectX-4 Lx Dual Port 25GbE |
58 |
| -- Disk |
59 |
| - - Boot Disk: Intel S3500 120GB |
60 |
| - - Ceph HDD: Seagate X16 16TB |
| 7 | +OpenStack 是一個開源的雲端運算管理平台,提供了一套工具來管理運算、網路和儲存資源。Ceph 是一個開源的分散式儲存系統,可提供高可靠性和可擴展性的物件、區塊和檔案儲存。 |
61 | 8 |
|
62 |
| -## 軟體 |
| 9 | +本文將介紹 Infra Labs 的 OpenStack 和 Ceph 架構,包括使用的元件、硬體規格、網路拓撲和自訂設定。詳細設定檔公開於 [Infra-Labs-Config repository](https://github.com/cloud-native-taiwan/Infra-Labs-Config)。 |
63 | 10 |
|
64 |
| -### 主機任務分配 |
| 11 | +## 架構概覽 |
65 | 12 |
|
66 |
| -- OpenStack Controller: `openstack01-03` |
67 |
| -- OpenStack Compute: `openstack01-05` |
68 |
| -- Ceph Controller: `openstack01-03` |
69 |
| -- Ceph OSDs: All nodes |
70 |
| -- Monitoring: `openstack06` |
| 13 | +上圖展示了 Infra Labs IaaS 的高層架構。使用者透過 Horizon 網頁介面或 OpenStack API 與服務互動。API 請求被發送到對應的 OpenStack 服務,這些服務協調運算節點 (透過 Nova)、網路資源 (透過 Neutron) 和儲存 (透過 Cinder、Glance、Swift)。 |
71 | 14 |
|
72 |
| -### Ansible |
| 15 | +Ceph 提供了高可靠性的區塊儲存 (透過 RBD) 給 Nova、Cinder 和 Glance 使用,以及物件儲存 (透過 RGW) 給 Swift 使用。 |
73 | 16 |
|
74 |
| -Ansible 被用來做一些 OS 安裝後的設定,如安裝一些必要軟體、網卡的設定等等。 |
| 17 | +MariaDB 儲存了 OpenStack 服務的狀態和元資料,而 RabbitMQ 則負責服務間的訊息傳遞。Keepalived 和 HAProxy 提供了高可用性的 API 端點。 |
75 | 18 |
|
76 |
| -### OpenStack |
| 19 | +## 硬體 |
77 | 20 |
|
78 |
| -Infra Labs 所使用的 OpenStack 服務有: |
| 21 | +Infra Labs 使用了 6 台伺服器來提供 IaaS 服務: |
79 | 22 |
|
80 |
| -用於部屬主機: |
| 23 | +| Hostname | CPU | RAM | NIC | Boot Disk | Ceph Disk | |
| 24 | +|---------------|--------------------------------------------------|--------------------------------|--------------------------------------------------------------------|------------------------------------------------------------|---------------------------------------------------------------------------------| |
| 25 | +| openstack01-02 | AMD Epyc Rome 7282 * 2 | 32GB DDR4 2933MHz ECC RDIMM * 16 | On-board dual port 1GbE, Mellanox ConnectX-4 Lx dual port 25GbE | Intel 730 240GB or Sandisk CloudSpeed Eco Gen II 480GB | KIOXIA CD6 3.84TB, Intel DC S3500 1.6TB | |
| 26 | +| openstack04-05 | AMD Epyc Milan 7413 | 32GB DDR4 3200MHz ECC RDIMM * 8 | On-board quad port 1GbE, Mellanox ConnectX-4 Lx dual port 25GbE | Seagate Enterprise Performance 15K 900GB * 2 | Samsung NGSFF PM983 3.84TB, Intel DC S3500 1.6TB (openstack05 only), Seagate X18 16TB | |
| 27 | +| openstack06 | Xeon Silver 4110 | 32GB DDR4 2666MHz ECC RDIMM * 6 | On-board dual port 1GbE, Mellanox ConnectX-4 Lx dual port 25GbE | Intel S3500 120GB * 2 | Seagate X18 16TB | |
| 28 | +| arm01-03 | Ampere Altra Q80-30 * 2 | 32GB DDR4 3200MHz ECC RDIMM * 4 | On-board dual port 1GbE, Mellanox ConnectX-4 Lx dual port 25GbE | Samsung PM9A3 512GB | N/A | |
81 | 29 |
|
82 |
| -- [Bifrost](https://docs.openstack.org/bifrost/latest/) |
83 |
| -- [Kolla](https://docs.openstack.org/kolla/latest/) |
84 |
| -- [Kolla-Ansible](https://docs.openstack.org/kolla-ansible/latest/) |
85 |
| -- [Diskimage-builder](https://docs.openstack.org/diskimage-builder/latest/) |
| 30 | +## 軟體 |
86 | 31 |
|
87 |
| -用於提供服務: |
| 32 | +### 主機角色分配 |
88 | 33 |
|
89 |
| -- [Nova](https://docs.openstack.org/nova/latest/) |
90 |
| -- [Neutron](https://docs.openstack.org/neutron/latest/) |
91 |
| -- [Keystone](https://docs.openstack.org/keystone/latest/) |
92 |
| -- [Glance](https://docs.openstack.org/glance/latest/) |
93 |
| -- [Heat](https://docs.openstack.org/heat/latest/) |
94 |
| -- [Cinder](https://docs.openstack.org/cinder/latest/) |
95 |
| -- [Swift](https://docs.openstack.org/swift/latest/) |
96 |
| -- [Designate](https://docs.openstack.org/designate/latest/) |
97 |
| -- [Octavia](https://docs.openstack.org/octavia/latest/) |
98 |
| -- [Placement](https://docs.openstack.org/placement/latest/) |
99 |
| -- [Horizon](https://docs.openstack.org/horizon/latest/) |
| 34 | +- OpenStack 控制節點:```openstack01,02,04``` |
| 35 | +- OpenStack 運算節點:```openstack01,02,04,05,arm01``` |
| 36 | +- Ceph 控制節點:```openstack01,02,04``` |
| 37 | +- Ceph OSD 節點:```openstack01,02,03,04``` |
100 | 38 |
|
101 |
| -其他 OpenStack 所需元件: |
| 39 | +### OpenStack 服務 |
102 | 40 |
|
103 |
| -- [MariaDB](https://mariadb.org/) |
104 |
| -- [RabbitMQ](https://www.rabbitmq.com/) |
105 |
| -- [Keepalived](https://github.com/acassen/keepalived) |
106 |
| -- [HAProxy](http://www.haproxy.org/) |
| 41 | +Infra Labs 使用以下 OpenStack 服務: |
107 | 42 |
|
108 |
| -詳細設定檔皆公開至[此 Repo](https://github.com/cloud-native-taiwan/Infra-Labs-Config)。 |
| 43 | +部署工具: |
| 44 | +- [Bifrost](https://docs.openstack.org/bifrost/latest/):裸機部署 |
| 45 | +- [Kolla](https://docs.openstack.org/kolla/latest/):容器化 OpenStack 服務 |
| 46 | +- [Kolla-Ansible](https://docs.openstack.org/kolla-ansible/latest/):使用 Ansible 部署 Kolla |
| 47 | +- [Diskimage-builder](https://docs.openstack.org/diskimage-builder/latest/):建立客製化的 OS 映像檔 |
109 | 48 |
|
110 |
| -### Ceph |
| 49 | +核心服務: |
| 50 | +- [Nova](https://docs.openstack.org/nova/latest/):運算(虛擬機、裸機) |
| 51 | +- [Neutron](https://docs.openstack.org/neutron/latest/):網路 |
| 52 | +- [Keystone](https://docs.openstack.org/keystone/latest/):身份驗證 |
| 53 | +- [Glance](https://docs.openstack.org/glance/latest/):映像檔 |
| 54 | +- [Cinder](https://docs.openstack.org/cinder/latest/):區塊儲存 |
| 55 | +- [Swift](https://docs.openstack.org/swift/latest/):物件儲存 |
| 56 | +- [Placement](https://docs.openstack.org/placement/latest/):資源庫存和使用量追蹤 |
111 | 57 |
|
112 |
| -Ceph 使用 [Cephadm](https://docs.ceph.com/en/latest/cephadm/index.html) 部屬,後端網路使用 100G/25G 網卡。 |
| 58 | +其他服務: |
| 59 | +- [Heat](https://docs.openstack.org/heat/latest/):協調多個 OpenStack 服務來部署應用程式 |
| 60 | +- [Designate](https://docs.openstack.org/designate/latest/):DNS 即服務 |
| 61 | +- [Octavia](https://docs.openstack.org/octavia/latest/):負載平衡即服務 |
| 62 | +- [Horizon](https://docs.openstack.org/horizon/latest/):Web UI |
113 | 63 |
|
114 |
| -提供的服務有: |
| 64 | +### Ceph 服務 |
115 | 65 |
|
116 |
| -- RBD |
117 |
| - - 提供給 Nova, Cinder, Glance 作為儲存後端。 |
118 |
| -- RGW |
119 |
| - - 提供給 Swift 作為儲存後端,並且透過 Keystone 認證提供 S3 Compatible API。 |
| 66 | +Ceph 使用 [Cephadm](https://docs.ceph.com/en/latest/cephadm/index.html) 部署,後端網路使用 25GbE 網卡。 |
120 | 67 |
|
121 |
| -目前 Crush Rule 分為兩種: |
| 68 | +提供的服務: |
| 69 | +- RBD:為 Nova、Cinder、Glance 提供區塊儲存 |
| 70 | +- RGW:為 Swift 提供物件儲存,並透過 Keystone 認證提供 S3 相容 API |
122 | 71 |
|
123 |
| -- replicated_nvme |
124 |
| - - 使用 NVMe SSD 作為儲存媒介 |
125 |
| -- replicated_sata_ssd |
126 |
| - - 使用 SATA SSD 作為儲存媒介 |
127 |
| -- erasure profile main |
128 |
| - - 4+2 Erasure Coding 作為 S3 儲存池 |
| 72 | +目前 Crush Rule 包括: |
| 73 | +- ```replicated_nvme```:使用 NVMe SSD |
| 74 | +- ```replicated_sata_ssd```:使用 SATA SSD |
| 75 | +- ```replicated_hdd```:使用 HDD |
0 commit comments