Skip to content

Commit f2a7598

Browse files
committed
ceph lab
1 parent 87b7e25 commit f2a7598

10 files changed

+384
-0
lines changed

Ceph/PIC/ceph-in-lab-1.png

42.8 KB
Loading

Ceph/PIC/ceph-in-lab-2.png

90.5 KB
Loading

Ceph/PIC/ceph-in-lab-3.png

151 KB
Loading

Ceph/PIC/ceph-in-lab-4.png

139 KB
Loading

Ceph/PIC/ceph-in-lab-5.png

30.8 KB
Loading

Ceph/PIC/ceph-in-lab-6.png

54.2 KB
Loading

Ceph/PIC/ceph-in-lab-7.png

35.3 KB
Loading

Ceph/PIC/ceph-in-lab-8.png

28.3 KB
Loading

Ceph/PIC/ceph-in-lab-9.png

11.4 KB
Loading

Ceph/ceph-install-lab.md

+384
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,384 @@
1+
# Cài đặt Ceph Storage Cluster trên CentOS 7 (Ceph jewel)
2+
---
3+
## Tổng quan
4+
(xem docs cơ bản về ceph)
5+
6+
## Chuẩn bị
7+
### Về tài nguyên
8+
__Yêu cầu sử dụng 5 node, tất cả cài đặt CentOS__
9+
```
10+
ceph-admin 192.168.2.128
11+
mon1 192.168.2.129
12+
osd1 192.168.2.130
13+
osd2 192.168.2.131
14+
client 192.168.2.132
15+
```
16+
> quyền root trên tất cả các node
17+
18+
### Cấu hình mỗi máy
19+
#### __ceph-admin__
20+
```
21+
CPU: 2 core
22+
RAM: 2 GB
23+
Hard Disk: 50 GB
24+
```
25+
26+
#### __mon1__
27+
```
28+
CPU: 2 core
29+
RAM: 2 GB
30+
Hard Disk: 50 GB
31+
```
32+
33+
#### __osd-1__
34+
```
35+
CPU: 2 core
36+
RAM: 2 GB
37+
Hard Disk: 50 GB
38+
Hard Disk: 20 GB (Dùng cho Ceph Cluster)
39+
```
40+
41+
#### __osd-2__
42+
```
43+
CPU: 2 core
44+
RAM: 2 GB
45+
Hard Disk: 50 GB
46+
Hard Disk: 20 GB (Dùng cho Ceph Cluster)
47+
```
48+
49+
#### __client__
50+
```
51+
CPU: 2 core
52+
RAM: 2 GB
53+
Hard Disk: 50 GB
54+
```
55+
56+
## Cài đặt
57+
### Phần 1 - Cấu hình chuẩn bị trên tất cả các node
58+
#### Bước 1: Tạo Ceph User
59+
Tạo Ceph user 'cephuser' trên tất các các nodes.
60+
```
61+
useradd -d /home/cephuser -m cephuser
62+
passwd cephuser
63+
```
64+
Cấp quyền root cho user vừa tạo
65+
```
66+
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
67+
chmod 0440 /etc/sudoers.d/cephuser
68+
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
69+
```
70+
#### Bước 2: Cấu hình NTP
71+
Sử dụng NTP đồng bộ thời gian trên tất cả các Node.
72+
> Ở đây sử dụng NTP pool US.
73+
74+
```
75+
yum install -y ntp ntpdate ntp-doc
76+
ntpdate 0.us.pool.ntp.org
77+
hwclock --systohc
78+
systemctl enable ntpd.service
79+
systemctl start ntpd.service
80+
```
81+
82+
#### Bước 3 (Tùy chọn): Nếu chạy tất cả node trên VMware, cần sử dụng công cụ hỗ trợ
83+
```
84+
yum install -y open-vm-tools
85+
```
86+
87+
#### Bước 4: Hủy bỏ SELinux
88+
```
89+
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
90+
```
91+
92+
#### Bước 5: Cấu hình Host File
93+
94+
Cấu hình trên tất cả các node
95+
```
96+
vim /etc/hosts
97+
98+
# content
99+
192.168.2.128 ceph-admin
100+
192.168.2.129 mon1
101+
192.168.2.130 osd1
102+
192.168.2.131 osd2
103+
192.168.2.132 client
104+
```
105+
106+
Cấu hình hostname trên các node theo tên riêng
107+
```
108+
hostnamectl set-hostname <Tên node tương ứng>
109+
110+
# VD
111+
hostnamectl set-hostname ceph-admin
112+
hostnamectl set-hostname mon1
113+
...
114+
```
115+
> Ping thử tới các host, kiếm tra Network
116+
117+
> VD: ping -c 3 mon1
118+
119+
### Phần 2: Cấu hình SSH Server
120+
> __Cấu hình trên ceph-admin node__
121+
122+
Sẽ sử dụng admin node để cấu hình các node monitor và osd.
123+
124+
#### Bước 1: Truy cập ceph-admin
125+
```
126+
ssh root@ceph-admin
127+
```
128+
> Sử dụng admin node để cài đặt các node còn lại, vì vậy ceph-admin node cần có khả năng truy cập tới các node còn lại.
129+
130+
#### Bước 2: Tạo ssh-key
131+
```
132+
ssh-keygen
133+
```
134+
> Để khoảng trắng trên các lựa chọn
135+
136+
137+
#### Bước 3: Cấu hình ssh file
138+
```
139+
vim ~/.ssh/config
140+
141+
# content
142+
Host ceph-admin
143+
Hostname ceph-admin
144+
User cephuser
145+
146+
Host mon1
147+
Hostname mon1
148+
User cephuser
149+
150+
Host osd1
151+
Hostname osd1
152+
User cephuser
153+
154+
Host osd2
155+
Hostname osd2
156+
User cephuser
157+
158+
Host osd3
159+
Hostname osd3
160+
User cephuser
161+
```
162+
![](PIC/ceph-in-lab-1.png)
163+
164+
Thay đổi quyền trên file
165+
```
166+
chmod 644 ~/.ssh/config
167+
```
168+
169+
Chuyển ssh-key tới các node còn lại
170+
```
171+
ssh-keyscan osd1 osd2 osd3 client >> ~/.ssh/known_hosts
172+
ssh-copy-id osd1
173+
ssh-copy-id osd2
174+
ssh-copy-id mon1
175+
ssh-copy-id client
176+
```
177+
178+
179+
> Yều cầu nhập passwd trong lần đầu tiền truy cập
180+
181+
![](PIC/ceph-in-lab-2.png)
182+
183+
### Phần 3: Cấu hình Firewalld
184+
#### Tùy chọn 1: Cấu hình dựa theo lab
185+
Trong lab ta sẽ bỏ qua cấu hình firewalld (cấu hình trên tất cả các node)
186+
```
187+
systemctl stop firewalld
188+
systemctl disable firewalld
189+
```
190+
#### Tùy chọn 2: Cấu hình firewalld (Chưa kiểm chứng)
191+
##### Bước 1: Cấu hình firewalld trên ceph-admin
192+
Kiểm tra firwalld
193+
```
194+
ssh root@ceph-admin
195+
196+
systemctl start firewalld
197+
systemctl enable firewalld
198+
```
199+
Mở port 80, 2003, 4505-4506
200+
```
201+
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
202+
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
203+
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
204+
sudo firewall-cmd --reload
205+
```
206+
207+
##### Bước 2: Cấu hình firewalld trên ceph monitor (mon1)
208+
Kiểm tra firwalld
209+
```
210+
ssh root@mon1
211+
212+
systemctl start firewalld
213+
systemctl enable firewalld
214+
```
215+
Mở port sau trên Ceph monitor
216+
```
217+
sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
218+
sudo firewall-cmd --reload
219+
```
220+
221+
##### Bước 3: Cấu hình trên node osd 1 - 2
222+
Mở port 6800-7300 trên mỗi port osd node: osd1, osd2
223+
224+
```
225+
ssh osd1 # ssd osd2
226+
227+
sudo systemctl start firewalld
228+
sudo systemctl enable firewalld
229+
sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
230+
sudo firewall-cmd --reload
231+
```
232+
233+
### Phần 4: Cấu hình Ceph OSD
234+
Theo cấu hình thiết lập cơ bản, 2 Ceph OSD sẽ gồm 2 disk:
235+
- /dev/sda = root partition.
236+
- /dev/sdb = 20GB dựa theo lab.
237+
Ta sẽ sử dụng /dev/sdb để cấu hình Ceph disk
238+
239+
#### Thực hiện trên từng node osd (osd 1, osd 2)
240+
Kiểm tra thông tin disk
241+
```
242+
sudo fdisk -l /dev/sdb
243+
```
244+
Đinh dạng XFS FS với GPT partition thông qua command
245+
```
246+
sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
247+
sudo mkfs.xfs /dev/sdb -f
248+
```
249+
Kiểm tra lại partition vừa định dạng
250+
```
251+
sudo blkid -o value -s TYPE /dev/sdb
252+
```
253+
254+
### Phần 5: Thiết lập Ceph Cluster
255+
Tại phân này, ta sẽ cài đặt tât cả các Ceph node thông qua ceph-admin node.
256+
257+
#### Bước 1: Truy cập ceph-admin node
258+
```
259+
ssh root@ceph-admin
260+
```
261+
262+
#### Bước 2: Cài đặt ceph-deploy trên ceph-admin node
263+
Thêm Ceph repo và cài đặt gói thiết lập Ceph với yum cmd
264+
```
265+
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
266+
sudo yum update -y && sudo yum install ceph-deploy -y
267+
```
268+
269+
#### Bước 3: Tạo mới Ceph Cluster config
270+
Tạo cluster directory
271+
```
272+
mkdir cluster
273+
cd cluster/
274+
```
275+
276+
Tạo mới cluster config với 'ceph-deploy' command, thiết lập monitor node = 'mon1'
277+
```
278+
ceph-deploy new mon1
279+
```
280+
![](PIC/ceph-in-lab-3.png)
281+
282+
Cấu hình ceph.conf
283+
```
284+
vim ceph.conf
285+
286+
# Add thêm
287+
public network = 192.168.2.0/24
288+
osd pool default size = 2
289+
```
290+
291+
#### Bước 4: Cài đặt Ceph tới tất cả các node
292+
Cài đặt Ceph tới tất cả các node từ ceph-admin node.
293+
```
294+
ceph-deploy install ceph-admin mon1 osd1 osd2
295+
```
296+
> cmd sẽ tự động cài đặt ceph tới tất cả các node: mon1, osd1-2 và ceph-amdin
297+
298+
Thiết lập ceph-mon tới mon1 node
299+
```
300+
ceph-deploy mon create-initial
301+
```
302+
303+
Tạo monitor key, kiểm tra thiết lập key
304+
```
305+
ceph-deploy gatherkeys mon1
306+
```
307+
![](PIC/ceph-in-lab-4.png)
308+
309+
#### Bước 5: Thêm OSD tới Cluster
310+
Sau khi Ceph được cài đặt tới các node, ta cần thêm tiến trình OSD tới cluster. Các tiến trình OSD sẽ tạo data, journal partition trên disk /dev/sdb.
311+
```
312+
ceph-deploy disk list osd1 osd2
313+
```
314+
![](PIC/ceph-in-lab-5.png)
315+
316+
> Nhận thấy /dev/sdb đang ở dạng XFS format
317+
318+
Xóa /dev/sdb partition tables trên tất cả node với zap option
319+
```
320+
ceph-deploy disk zap osd1:/dev/sdb osd2:/dev/sdb
321+
```
322+
> cmd trên sẽ xóa toàn bộ data trên /dev/sdb tại Ceph OSD node
323+
324+
Thiết lập OSD node
325+
```
326+
ceph-deploy osd prepare osd1:/dev/sdb osd2:/dev/sdb
327+
```
328+
329+
Nếu thành công
330+
![](PIC/ceph-in-lab-6.png)
331+
332+
Kích hoạt OSD
333+
```
334+
ceph-deploy osd activate osd1:/dev/sdb1 osd2:/dev/sdb1
335+
```
336+
337+
Kiểm tra sau khi thiêt lập
338+
```
339+
ceph-deploy disk list osd1 osd2
340+
```
341+
![](PIC/ceph-in-lab-7.png)
342+
343+
Theo kết quả, /dev/sdb sẽ có 2 phân vùng
344+
- /dev/sdb1 - Ceph Data
345+
- /dev/sdb2 - Ceph Journal
346+
347+
Kiểm tra tại OSD node
348+
```
349+
fdisk -l /dev/sdb
350+
```
351+
![](PIC/ceph-in-lab-8.png)
352+
353+
Thiết lập management-key liên kết các node
354+
```
355+
ceph-deploy admin ceph-admin mon1 osd1 osd2
356+
```
357+
Thiết lập quyền truy cập file trên tất cả các node
358+
```
359+
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
360+
```
361+
362+
> Sau bước trên thiết lập Ceph Cluster hoàn tất
363+
364+
### Phần 6: Kiểm tra Ceph setup
365+
#### Bước 1: Kiểm tra tại Ceph monitor node
366+
Truy cập ceph monitor node
367+
```
368+
ssh root@mon1
369+
```
370+
Kiểm tra cluster health
371+
```
372+
sudo ceph health
373+
```
374+
Kiểm tra cluster status
375+
```
376+
sudo ceph -s
377+
```
378+
![](PIC/ceph-in-lab-9.png)
379+
380+
> Có thể thây thông tin cơ bản health = OK
381+
382+
> Ceph monitor IP = 192.168.2.129:6789
383+
384+
> Có 2 OSD server, và có thể sử dụng 30gb dung lượng trên cluster

0 commit comments

Comments
 (0)