Skip to content

Commit bc083d0

Browse files
authored
Merge pull request #74 from ching-kuo/update_docs
Update All Architecture Reference
2 parents 4d763ff + a782982 commit bc083d0

File tree

3 files changed

+112
-154
lines changed

3 files changed

+112
-154
lines changed

docs/architecture/iaas.md

Lines changed: 50 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,128 +1,75 @@
11
# Infra Labs IaaS 架構
22

3-
TODO:
4-
5-
- [ ] 加上一些比較特殊設定的介紹
6-
73
## 前言
84

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 允許使用者透過網路以程式化的方式佈建運算、網路和儲存資源,而無需購買、管理和維護實體伺服器和基礎設施。
146

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 是一個開源的分散式儲存系統,可提供高可靠性和可擴展性的物件、區塊和檔案儲存。
618

62-
## 軟體
9+
本文將介紹 Infra Labs 的 OpenStack 和 Ceph 架構,包括使用的元件、硬體規格、網路拓撲和自訂設定。詳細設定檔公開於 [Infra-Labs-Config repository](https://github.com/cloud-native-taiwan/Infra-Labs-Config)
6310

64-
### 主機任務分配
11+
## 架構概覽
6512

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)。
7114

72-
### Ansible
15+
Ceph 提供了高可靠性的區塊儲存 (透過 RBD) 給 Nova、Cinder 和 Glance 使用,以及物件儲存 (透過 RGW) 給 Swift 使用。
7316

74-
Ansible 被用來做一些 OS 安裝後的設定,如安裝一些必要軟體、網卡的設定等等
17+
MariaDB 儲存了 OpenStack 服務的狀態和元資料,而 RabbitMQ 則負責服務間的訊息傳遞。Keepalived 和 HAProxy 提供了高可用性的 API 端點
7518

76-
### OpenStack
19+
## 硬體
7720

78-
Infra Labs 所使用的 OpenStack 服務有
21+
Infra Labs 使用了 6 台伺服器來提供 IaaS 服務
7922

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 |
8129

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+
## 軟體
8631

87-
用於提供服務:
32+
### 主機角色分配
8833

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```
10038

101-
其他 OpenStack 所需元件:
39+
### OpenStack 服務
10240

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 服務:
10742

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 映像檔
10948

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/):資源庫存和使用量追蹤
11157

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
11363

114-
提供的服務有:
64+
### Ceph 服務
11565

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 網卡。
12067

121-
目前 Crush Rule 分為兩種:
68+
提供的服務:
69+
- RBD:為 Nova、Cinder、Glance 提供區塊儲存
70+
- RGW:為 Swift 提供物件儲存,並透過 Keystone 認證提供 S3 相容 API
12271

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

docs/architecture/images/high_level_network.png

100755100644
36.9 KB
Loading

docs/architecture/network.md

Lines changed: 62 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -2,73 +2,84 @@
22

33
## 前言
44

5-
此篇文件將介紹目前 Infra Labs 所使用的網路架構,由於預算問題很多部分設計都可以再改進,如果有相關建議歡迎與[管理員](mailto:[email protected])討論
5+
本文件旨在介紹 Infra Labs 目前使用的網路架構,說明各個網路設備的規格、用途,以及它們之間的連接方式。同時也會指出目前架構存在的問題和風險,為未來的改進提供參考
66

7-
## 架構圖
7+
本文主要面向網路工程師和系統管理員,假設讀者已經具備基本的網路知識和經驗。如果您在閱讀過程中有任何疑問或建議,歡迎隨時與[管理員](mailto:[email protected])聯繫。
88

9-
![High Level Network](images/high_level_network.png)
9+
## 架構總覽
1010

11-
## 設備
11+
上圖展示了 Infra Labs 網路的整體架構。主要由以下幾個部分組成:
1212

13-
目前 Infra Labs 採用多廠牌網路設備,由於網路設備使用開源軟體極少以及價格通常偏高。
14-
因預算問題,目前網路設備大多數使用閉源軟體,並且有單點故障的風險 (Single Point of Failure)。
13+
- 路由器:NFX250,負責 NAT、VPN 等功能
14+
- 核心交換機:Arista DCS-7060CX-32S,負責內部網路和上游 BGP
15+
- 管理交換機:Juniper EX3300-48T,負責 Out-of-band 管理網路
16+
- LTE 設備:提供備援網路連接
1517

16-
廠商若有意願贊助網路設備,歡迎[聯絡管理員](mailto:[email protected])
18+
各設備之間的連接方式如圖所示。由於預算限制,目前的架構還存在一些單點故障的風險,詳情將在後文中說明。
19+
20+
## 網路設備
1721

1822
### 路由器
1923

20-
路由器目前使用一台 Juniper NFX250,主要功能是與上游進行 BGP 宣告和 Infra Labs 使用 public IP 的 gateway。除此之外,路由器也被用來過濾掉一些容易被攻擊的連接埠。
24+
- 型號:NFX250
25+
- 功能:
26+
- In-band management 網路的 NAT 網關
27+
- Dashboard 和 DNS 伺服器的 NAT
28+
- Out-of-band management 網路的 VPN 接入
29+
- DNS 伺服器的流量限制
30+
- 運行虛擬機 (VM),用於:
31+
- 使用 Ansible 等管理工具部署各設備
32+
- 提供管理網路的 VPN 接入
2133

22-
另一台 NFX250 主要用於:
34+
### 交換機
2335

24-
- In band management 網路 NAT gateway
25-
- Dashboard, DNS server 的 NAT
26-
- Out of band Mangement 網路 VPN access
27-
- DNS server 流量限制
36+
#### 核心交換機
2837

29-
### 交換機
38+
- 型號:Arista DCS-7060CX-32S
39+
- 規格:32 port 100G 交換機
40+
- 功能:
41+
- 與上游進行 BGP 互聯
42+
- 承載 Infra Labs 內部 OpenStack/Ceph 等服務的網路
3043

31-
#### Arista DCS-7060CX-32S
44+
#### 管理交換機
3245

33-
Arista DCS-7060CX-32S 100G 交換機主要用於 VM 內/外部網路、Libvirt migration 網路和 Ceph 的 public/private 網路。
46+
- 型號:Juniper EX3300-48T
47+
- 功能:
48+
- 提供 Out-of-band 管理網路
49+
- 連接主機的 IPMI 和網路設備的管理端口
50+
- 上行連接 NFX250 路由器
3451

35-
### Celestica DX010
52+
### LTE 設備
3653

37-
Celestica DX010 100G 作為 Rack2 的核心交換機
54+
LTE 設備用於提供備援網路連接。當主要網路(Arista 或 NFX250)出現故障導致外部無法訪問時,可以通過 LTE 遠程接入管理網路進行搶修
3855

39-
#### Juniper EX2200-24T
56+
## 網段規劃
4057

41-
Juniper EX2200-24T 主要用於 Out of band management 網路。下接至各個主機 IPMI、網路設備 management port,上接至 Fortigate 200D。
58+
| VLAN | 網段 | 用途 |
59+
|------|--------------|------------|
60+
| 1 (untagged) | 192.168.0.0/24 | In-band management |
61+
| 100 | 10.0.0.0/24 | VM internal |
62+
| 101 | 10.0.1.0/24 | libvirt internal (for migration) |
63+
| 1113 | 192.168.113.0/24 | API network |
64+
| 1114 | 192.168.114.0/24 | Ceph public network |
65+
| 1115 | 192.168.115.0/24 | Ceph private network |
66+
| 2116 | 103.122.116.0/23 | Public network |
67+
| 1007 | 192.168.7.0/24 | Out-of-band management |
4268

43-
### LTE 設備
69+
## 總結
70+
71+
綜上所述,Infra Labs 目前的網路架構基本滿足內部服務和管理的需求,但仍存在一些問題和風險:
72+
73+
1. 由於預算限制,核心設備缺乏冗餘,存在單點故障風險。一旦關鍵設備發生故障,可能導致整個網路不可用。
74+
75+
2. 缺乏對網路設備和鏈路的監控,故障定位和處理的效率有待提高。
76+
77+
未來我們計劃在預算允許的情況下,對網路架構進行以下優化:
78+
79+
1. 引入設備冗餘,消除單點故障。
80+
81+
2. 建設全面的監控系統,實現網路的可視化和自動化運維。
82+
83+
3. 儘量採用開源軟體,降低成本並提高可定制性。
4484

45-
LTE 設備主要提供備援網路,若 NFX250 設定出問題導致主要網路斷線無法從外部連入,可以透過 LTE 設備連入 management 網路進行維修。
46-
47-
## 網段
48-
49-
目前網段主要分為以下:
50-
51-
- vlan3000 (untagged access):
52-
- 192.168.0.0/24
53-
- PXE/IB
54-
- vlan 100
55-
- 10.0.0.0/24
56-
- VM internal
57-
- vlan 101
58-
- 10.0.1.0/24
59-
- libvirt internal (for migration)
60-
- vlan 1088
61-
- rack2_mgmt: 192.168.88.0/24
62-
- vlan 1113
63-
- 192.168.113.0/24
64-
- API network
65-
- vlan 1114
66-
- 192.168.114.0/24
67-
- Ceph Public
68-
- vlan 1115
69-
- 192.168.115.0/24
70-
- Ceph Private
71-
- vlan 2116
72-
- 103.122.116.0/23 public
73-
- vlan 1007
74-
- mgmt: 192.168.7.0/24
85+
我們歡迎網路設備廠商提供贊助或優惠,幫助我們更快實現架構升級。如果您有任何建議或意願提供支持,請聯繫[管理員](mailto:[email protected])

0 commit comments

Comments
 (0)