[CEPH] [LAB] [Phần1] Hướng dẫn cài đặt CEPH Nautilus trên CentOS7

[CEPH] [LAB] [Phần1] Hướng dẫn cài đặt CEPH Nautilus trên CentOS7

CEPH là một sản phẩm nguồn mở để triển khai giải pháp storage hợp nhất, tức là nó có thể cung cấp được các loại storage bao gồm: Object Storage, Block Storage và File Storage trên một hệ thống duy nhất. CEPH có thể đáp ứng quy mô triển khai từ vài máy chủ cho tới vài chục máy để cung cấp hạ tầng lưu trữ cho ứng dụng trong hạ tầng của ban.

Kiến trúc của CEPH

Tính tới thời điểm này, CEPH Nautilus (version 14.x) là phiên bản stable của CEPH. Trong biên bản ngày, ngoài những tính năng hay ho vốn có của hệ thống Storage nói chung thì CEPH còn cung cấp một phiên bản cải tiến khá lớn về giao diện người dùng (CEPH Dashboad), đồng thời tích hợp sẵn với các ứng dụng giám sát như prometheus, zabbix.

Hiện trên trang chủ docs.ceph.com cung cấp khá đầy đủ tài liệu cài đặt CEPH, nhưng để phục vụ việc lab của team Onet và chia sẻ về stack mà team đang dùng để xây dựng cloud thì mình xin chia sẻ tài liệu dựng LAB với CEPH trên mô hình 03 node để tạo cluster CEPH.

Trong phạm vi bài lab này, Onet sẽ cài đặt CEPH và cấu hình để cung cấp Object Storage & Block Storage cho client có thể sử dụng. Tài liệu này cũng hướng dẫn các bạn dựng lab và cấu hình cơ bản Ceph Dashboad.

Môi trường cài đặt CEPH được thực hiện trên các máy ảo, hoặc các máy vật lý, tùy vào điều kiện của bạn. Các VLAN được cấu hình trước đó, hãy thay đổi nếu hạ tầng của bạn có các VLAN khác nhau.

1. Mô hình dựng LAB

1.1 Mô hình logic khi dựng LAB

Trong mô hình logic này, sẽ có các thành phần của CEPH. Các thành phần này sẽ thuộc các node trên mô hình triển khai (Mô hình đấu nối vật lý) bao gồm: ceph-admin, ceph-mgr, MON, OSD, RADOSGW. Vai trò của từng thành phần này sẽ được đề cập ở các bài về lý thuyết khác.

1.2. Mô hình triển khai

2. IP Planning

IP Planning và cấu hình từng máy để dựng LAB. Bạn có thể triển khai mô hình này trên các môi trường ảo hóa KVM, VMware, Virtualbox hoặc trên các máy vật lý. Tùy vào các VLAN trong hệ thống của bạn mà có thể điều chỉnh cho phù hợp. Các cấu hình về RAM, Disk, CPU chỉ là cấu hình tương tương trở lên

3. Các bước cài đặt

3.1. Thiết lập hostname, IP

3.1.1. Thiết lập hostname, IP cho node CEPH1

Login với tài khoản root và thực hiện các lệnh dưới.

yum update -y

Cài đặt các gói phần mềm bổ trợ

yum install epel-release -y yum update -y yum install wget byobu curl git byobu python-setuptools python-virtualenv -y

Thiết lập hostname cho CEPH1

hostnamectl set-hostname ceph1

Thiết lập IP Add, trong hướng dẫn này, VLAN 192.168.98.0/24 sẽ ra internet để tải các gói cài đặt.

echo "Setup IP  ens32" nmcli con modify ens32 ipv4.addresses 192.168.98.85/24 nmcli con modify ens32 ipv4.gateway 192.168.98.1 nmcli con modify ens32 ipv4.dns 8.8.8.8 nmcli con modify ens32 ipv4.method manual nmcli con modify ens32 connection.autoconnect yes  echo "Setup IP  ens33" nmcli con modify ens33 ipv4.addresses 192.168.62.85/24 nmcli con modify ens33 ipv4.method manual nmcli con modify ens33 connection.autoconnect yes  echo "Setup IP  ens34" nmcli con modify ens34 ipv4.addresses 192.168.63.85/24 nmcli con modify ens34 ipv4.method manual nmcli con modify ens34 connection.autoconnect yes

Cấu hình chế độ firewall để tiện trong môi trường lab. Trong môi trường production cần bật firewall hoặc iptables hoặc có biện pháp xử lý khác tương ứng để đảm bảo các vấn đề về an toàn.

sudo systemctl disable firewalld sudo systemctl stop firewalld sudo systemctl disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl enable network sudo systemctl start network  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf

Khai báo file /etc/hosts. Việc này rất quan trọng vì CEPH sẽ sử dụng hostname trong các bước tới để cấu hình và kết nối khi thực hiện.

cat << EOF > /etc/hosts 127.0.0.1 `hostname` localhost 192.168.62.84 client1 192.168.62.85 ceph1 192.168.62.86 ceph2 192.168.62.87 ceph3  192.168.98.84 client1 192.168.98.85 ceph1 192.168.98.86 ceph2 192.168.98.87 ceph3 EOF

Cài đặt NTP, trong hướng dẫn này sử dụng chronyd thay cho ntpd. Việc đồng bộ thời gian cũng là quan trọng khi triển khai CEPH. Hãy đảm bảo timezone và thời gian được đồng bộ để đúng với hệ thống của bạn.

yum install -y chrony  systemctl enable chronyd.service systemctl start chronyd.service systemctl restart chronyd.service chronyc sources

Lưu ý: Nếu bạn có hệ thống NTP nội bộ, hãy cấu hình nó hoặc tham khảo ở đây: https://litespeed.com.vn/?s=ntp

Khởi động lại node CEPH1 và chuyển sang CEPH2 thực hiện tiếp.

init 6

3.1.2. Thiết lập hostname, IP cho node CEPH2

Login với tài khoản root và thực hiện các lệnh dưới.

Cập nhật các gói phần mềm.

yum update -y

Cài đặt các gói phần mềm bổ trợ

yum install epel-release -y yum update -y yum install wget byobu curl git byobu python-setuptools python-virtualenv -y

Thiết lập hostname cho CEPH2

hostnamectl set-hostname ceph2

Thiết lập IP Add, trong hướng dẫn này, VLAN 192.168.98.0/24 sẽ ra internet để tải các gói cài đặt.

echo "Setup IP  ens32" nmcli con modify ens32 ipv4.addresses 192.168.98.86/24 nmcli con modify ens32 ipv4.gateway 192.168.98.1 nmcli con modify ens32 ipv4.dns 8.8.8.8 nmcli con modify ens32 ipv4.method manual nmcli con modify ens32 connection.autoconnect yes  echo "Setup IP  ens33" nmcli con modify ens33 ipv4.addresses 192.168.62.86/24 nmcli con modify ens33 ipv4.method manual nmcli con modify ens33 connection.autoconnect yes  echo "Setup IP  ens34" nmcli con modify ens34 ipv4.addresses 192.168.63.86/24 nmcli con modify ens34 ipv4.method manual nmcli con modify ens34 connection.autoconnect yes

Cấu hình chế độ firewall để tiện trong môi trường lab. Trong môi trường production cần bật firewall hoặc iptables hoặc có biện pháp xử lý khác tương ứng để đảm bảo các vấn đề về an toàn.

sudo systemctl disable firewalld sudo systemctl stop firewalld sudo systemctl disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl enable network sudo systemctl start network  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf

Khai báo file /etc/hosts. Việc này rất quan trọng vì CEPH sẽ sử dụng hostname trong các bước tới để cấu hình và kết nối khi thực hiện.

cat << EOF > /etc/hosts 127.0.0.1 `hostname` localhost 192.168.62.84 client1 192.168.62.85 ceph1 192.168.62.86 ceph2 192.168.62.87 ceph3  192.168.98.84 client1 192.168.98.85 ceph1 192.168.98.86 ceph2 192.168.98.87 ceph3 EOF

Cài đặt NTP, trong hướng dẫn này sử dụng chronyd thay cho ntpd. Việc đồng bộ thời gian cũng là quan trọng khi triển khai CEPH. Hãy đảm bảo timezone và thời gian được đồng bộ để đúng với hệ thống của bạn.

yum install -y chrony  systemctl enable chronyd.service systemctl start chronyd.service systemctl restart chronyd.service chronyc sources

Lưu ý: Nếu bạn có hệ thống NTP nội bộ, hãy cấu hình nó hoặc tham khảo ở đây: https://litespeed.com.vn/?s=ntp

Khởi động lại node CEPH2 và chuyển sang CEPH3 thực hiện.

init 6

3.1.3. Thiết lập hostname, IP cho node CEPH3

Login với tài khoản root và thực hiện các lệnh dưới.

Cập nhật các gói phần mềm.

yum update -y

Cài đặt các gói bổ trợ

yum install epel-release -y yum update -y yum install wget byobu curl git byobu python-setuptools python-virtualenv -y

Thiết lập hostname cho CEPH3

hostnamectl set-hostname ceph3

Thiết lập IP Add, trong hướng dẫn này, VLAN 192.168.98.0/24 sẽ ra internet để tải các gói cài đặt.

echo "Setup IP  ens32" nmcli con modify ens32 ipv4.addresses 192.168.98.87/24 nmcli con modify ens32 ipv4.gateway 192.168.98.1 nmcli con modify ens32 ipv4.dns 8.8.8.8 nmcli con modify ens32 ipv4.method manual nmcli con modify ens32 connection.autoconnect yes  echo "Setup IP  ens33" nmcli con modify ens33 ipv4.addresses 192.168.62.87/24 nmcli con modify ens33 ipv4.method manual nmcli con modify ens33 connection.autoconnect yes  echo "Setup IP  ens34" nmcli con modify ens34 ipv4.addresses 192.168.63.87/24 nmcli con modify ens34 ipv4.method manual nmcli con modify ens34 connection.autoconnect yes

Cấu hình chế độ firewall để tiện trong môi trường lab. Trong môi trường production cần bật firewall hoặc iptables hoặc có biện pháp xử lý khác tương ứng để đảm bảo các vấn đề về an toàn.

sudo systemctl disable firewalld sudo systemctl stop firewalld sudo systemctl disable NetworkManager sudo systemctl stop NetworkManager sudo systemctl enable network sudo systemctl start network  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf

Khai báo file /etc/hosts. Việc này rất quan trọng vì CEPH sẽ sử dụng hostname trong các bước tới để cấu hình và kết nối khi thực hiện.

cat << EOF > /etc/hosts 127.0.0.1 `hostname` localhost 192.168.62.84 client1 192.168.62.85 ceph1 192.168.62.86 ceph2 192.168.62.87 ceph3  192.168.98.84 client1 192.168.98.85 ceph1 192.168.98.86 ceph2 192.168.98.87 ceph3 EOF

Cài đặt NTP, trong hướng dẫn này sử dụng chronyd thay cho ntpd. Việc đồng bộ thời gian cũng là quan trọng khi triển khai CEPH. Hãy đảm bảo timezone và thời gian được đồng bộ để đúng với hệ thống của bạn.

yum install -y chrony  systemctl enable chronyd.service systemctl start chronyd.service systemctl restart chronyd.service chronyc sources

Lưu ý: Nếu bạn có hệ thống NTP nội bộ, hãy cấu hình nó hoặc tham khảo ở đây: https://litespeed.com.vn/?s=ntp

Khởi động lại

init 6

Login với các IP đã đặt cho CEPH trước đó.

3.2. Tạo user cài đặt CEPH và khai báo repos

3.2.1. Tạo user để cài đặt CEPH trên cả 03 node CEPH1, CEPH2, CEPH3.

Bước này được thực hiện trên cả 03 node CPEH.

Tạo user là cephuser với mật khẩu là matkhau2019@

useradd cephuser; echo 'matkhau2019@' | passwd cephuser --stdin

Cấp quyền sudo cho user cephuser

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser chmod 0440 /etc/sudoers.d/cephuser

3.2.2. Khai báo repo cho ceph nautilus

Thực hiện hiện khai báo repo cho ceph nautilus trên tất cả các node CEPH.

cat <<EOF> /etc/yum.repos.d/ceph.repo [ceph] name=Ceph packages for $basearch baseurl=https://download.ceph.com/rpm-nautilus/el7/x86_64/ enabled=1 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc  [ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-nautilus/el7/noarch enabled=1 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc  [ceph-source] name=Ceph source packages baseurl=https://download.ceph.com/rpm-nautilus/el7/SRPMS enabled=0 priority=2 gpgcheck=1 gpgkey=https://download.ceph.com/keys/release.asc EOF

Thực hiện update sau khi khai bao repo

yum update -y

3.3. Cài đặt ceph-deploy và cấu hình

Theo docs của CEPH thì ta có thể cài đặt CEPH theo 03 cách, bao gồm: CEPH manual, ceph-deploy và ceph-ansible. Trong hướng dẫn này sẽ sử dụng ceph-deploy, một công cụ để triển khai CEPH.

3.3.1 Cài đặt ceph-deploy.

Thực hiện việc cài đặt này trên node CEPH1

Trong một số mô hình, node cài đặt ceph-deploy được gọi là node admin. Trong hướng dẫn này, Onet sẽ sử dụng node ceph1 chính là node ceph admin. Thực hiện việc này bằng tài khoản root.

Lưu ý: trong hướng dẫn này chỉ cần đứng trên ceph1 thực hiện, một số thao tác trên node CEPH2, CEPH3 sẽ thực hiện từ xa ngay trên CEPH1.

sudo yum install -y epel-release sudo yum install -y ceph-deploy

Chuyển sang tài khoản cephuser

su - cephuser

Tạo ssh key, sau đó copy sang các node còn lại, nhập mật khẩu của user cephuser ở trên khi được hỏi tại màn hình. Lưu ý không dùng sudo với lệnh ssh-keygen

ssh-keygen

Nhấn Enter để mặc định các tham số, bước này sẽ sinh ra private key và public key cho user cephuser. Sau đó tiến hành các lệnh dưới để copy public key sang các node.

Nhập mật khẩu của user cephuser tạo ở các node trước đó trong bước trên.

ssh-copy-id cephuser@ceph1
ssh-copy-id cephuser@ceph2
ssh-copy-id cephuser@ceph3

Tạo thư mục chứa các file cấu hình khi cài đặt CEPH

cd ~ mkdir my-cluster cd my-cluster

Khai báo các node ceph trong cluser.

ceph-deploy new ceph1 ceph2 ceph3

Lệnh trên sẽ sinh ra các file cấu hình trong thư mục hiện tại, kiểm tra bằng lệnh ls – alh

cephuser@ceph1:~/my-cluster$ ls -alh total 188K drwxrwxr-x 2 cephuser cephuser   75 Sep  6 23:14 . drwx------ 5 cephuser cephuser  151 Sep  6 23:14 .. -rw-rw-r-- 1 cephuser cephuser  418 Sep  6 23:15 ceph.conf -rw-rw-r-- 1 cephuser cephuser 177K Sep  6 23:19 ceph-deploy-ceph.log -rw------- 1 cephuser cephuser   73 Sep  6 23:14 ceph.mon.keyring

Khai báo thêm các tùy chọn cho việc triển khai, vận hành CEPH vào file ceph.conf này trước khi cài đặt các gói cần thiết cho ceph trên các node. Lưu ý các tham số về network.

Ta sẽ dụng vlan 192.168.62.0/24 cho đường truy cập của các client (Hay gọi là ceph public. Vlan 192.168.63.0/24 cho đường replicate dữ liệu, các dữ liệu sẽ được sao chép & nhân bản qua vlan này.

echo "public network = 192.168.62.0/24" >> ceph.conf echo "cluster network = 192.168.63.0/24" >> ceph.conf echo "osd objectstore = bluestore"  >> ceph.conf echo "mon_allow_pool_delete = true"  >> ceph.conf echo "osd pool default size = 3"  >> ceph.conf echo "osd pool default min size = 1"  >> ceph.conf

Bắt đầu cài đặt phiên bản CEPH Nautilus lên các node ceph1, ceph2, ceph3. Lệnh dưới sẽ cài đặt lần lượt lên các node.

ceph-deploy install --release nautilus ceph1 ceph2 ceph3

Kết quả của lệnh trên sẽ hiển thị như bên dưới, trong đó có phiên bản của ceph được cài trên các node.

.......  [2019-09-06 23:16:46,139][ceph1][INFO  ] Running command: sudo ceph --version [2019-09-06 23:16:46,262][ceph1][DEBUG ] ceph version 14.2.3 (0f776cf838a1ae3130b2b73dc26be9c95c6ccc39) nautilus (stable) .......  [2019-09-06 23:18:18,771][ceph2][INFO  ] Running command: sudo ceph --version [2019-09-06 23:18:18,944][ceph2][DEBUG ] ceph version 14.2.3 (0f776cf838a1ae3130b2b73dc26be9c95c6ccc39) nautilus (stable) .......  [2019-09-06 23:19:46,856][ceph3][INFO  ] Running command: sudo ceph --version [2019-09-06 23:19:47,028][ceph3][DEBUG ] ceph version 14.2.3 (0f776cf838a1ae3130b2b73dc26be9c95c6ccc39) nautilus (stable) 

Thiết lập thành phần MON cho CEPH. Trong hướng dẫn này khai báo 03 node đều có thành phần MON của CEPH.

ceph-deploy mon create-initial

Kết quả sinh ra các file trong thư mục hiện tại

cephuser@ceph1:~/my-cluster$ ls -alh total 348K drwxrwxr-x 2 cephuser cephuser  244 Sep  6 23:26 . drwx------ 5 cephuser cephuser  151 Sep  6 23:14 .. -rw------- 1 cephuser cephuser  113 Sep  6 23:26 ceph.bootstrap-mds.keyring -rw------- 1 cephuser cephuser  113 Sep  6 23:26 ceph.bootstrap-mgr.keyring -rw------- 1 cephuser cephuser  113 Sep  6 23:26 ceph.bootstrap-osd.keyring -rw------- 1 cephuser cephuser  113 Sep  6 23:26 ceph.bootstrap-rgw.keyring -rw------- 1 cephuser cephuser  151 Sep  6 23:26 ceph.client.admin.keyring -rw-rw-r-- 1 cephuser cephuser  418 Sep  6 23:15 ceph.conf -rw-rw-r-- 1 cephuser cephuser 214K Sep  6 23:26 ceph-deploy-ceph.log -rw------- 1 cephuser cephuser   73 Sep  6 23:14 ceph.mon.keyring

Thực hiện copy file ceph.client.admin.keyring sang các node trong cụm ceph cluster. File này sẽ được copy vào thư mục /etc/ceph/ trên các node.

ceph-deploy admin ceph1 ceph2 ceph3

Kết quả của lệnh trên như sau

cephuser@ceph1:~/my-cluster$ ceph-deploy admin ceph1 ceph2 ceph3 [ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephuser/.cephdeploy.conf [ceph_deploy.cli][INFO  ] Invoked (2.0.1): /bin/ceph-deploy admin ceph1 ceph2 ceph3 [ceph_deploy.cli][INFO  ] ceph-deploy options: [ceph_deploy.cli][INFO  ]  username                      : None [ceph_deploy.cli][INFO  ]  verbose                       : False [ceph_deploy.cli][INFO  ]  overwrite_conf                : False [ceph_deploy.cli][INFO  ]  quiet                         : False [ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f3c031d6248> [ceph_deploy.cli][INFO  ]  cluster                       : ceph [ceph_deploy.cli][INFO  ]  client                        : ['ceph1', 'ceph2', 'ceph3'] [ceph_deploy.cli][INFO  ]  func                          : <function admin at 0x7f3c03a77230> [ceph_deploy.cli][INFO  ]  ceph_conf                     : None [ceph_deploy.cli][INFO  ]  default_release               : False [ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph1 [ceph1][DEBUG ] connection detected need for sudo [ceph1][DEBUG ] connected to host: ceph1 [ceph1][DEBUG ] detect platform information from remote host [ceph1][DEBUG ] detect machine type [ceph1][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf [ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph2 [ceph2][DEBUG ] connection detected need for sudo [ceph2][DEBUG ] connected to host: ceph2 [ceph2][DEBUG ] detect platform information from remote host [ceph2][DEBUG ] detect machine type [ceph2][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf [ceph_deploy.admin][DEBUG ] Pushing admin keys and conf to ceph3 [ceph3][DEBUG ] connection detected need for sudo [ceph3][DEBUG ] connected to host: ceph3 [ceph3][DEBUG ] detect platform information from remote host [ceph3][DEBUG ] detect machine type [ceph3][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf

Đứng trên node ceph1 phân quyền cho file /etc/ceph/ceph.client.admin.keyring cho cả 03 node.

ssh cephuser@ceph1 'sudo chmod +r /etc/ceph/ceph.client.admin.keyring' ssh cephuser@ceph2 'sudo chmod +r /etc/ceph/ceph.client.admin.keyring' ssh cephuser@ceph3 'sudo chmod +r /etc/ceph/ceph.client.admin.keyring'

3.3.2 Khai báo các OSD cho node CEPH.

Đứng trên node ceph1 và thực hiện khai báo các OSD disk. Bước này sẽ thực hiện format các disk trên cả 3 node và join chúng vào làm các OSD (Thành phần chứa dữ liệu của CEPH).

ceph-deploy osd create --data /dev/sdb ceph1  ceph-deploy osd create --data /dev/sdc ceph1  ceph-deploy osd create --data /dev/sdd ceph1   ceph-deploy osd create --data /dev/sdb ceph2  ceph-deploy osd create --data /dev/sdc ceph2  ceph-deploy osd create --data /dev/sdd ceph2   ceph-deploy osd create --data /dev/sdb ceph3  ceph-deploy osd create --data /dev/sdc ceph3  ceph-deploy osd create --data /dev/sdd ceph3

Tới đây các bước cơ bản cấu hình ceph cluser đã hoàn tất. Kiểm tra trạng thái của cụm cluster ceph bằng lệnh ceph -s

Kết quả lệnh ceph -s sẽ như sau

cephuser@ceph1:~/my-cluster$ ceph -s   cluster:     id:     9691b2b5-a858-45b7-a239-4de3e1ff69c6     health: HEALTH_WARN             no active mgr    services:     mon: 3 daemons, quorum ceph1,ceph2,ceph3 (age 4m)     mgr: no daemons active     osd: 8 osds: 8 up (since 6s), 8 in (since 6s)    data:     pools:   0 pools, 0 pgs     objects: 0 objects, 0 B     usage:   0 B used, 0 B / 0 B avail     pgs:

Ta thấy trạng thái sẽ là HEALTH_WARN, lý do là vì ceph-mgr chưa được enable. Tiếp theo ta sẽ xử lý để kích hoạt ceph-mgr

3.3.3. Cấu hình manager và dashboad cho ceph cluster

Ceph-dashboard là một thành phần thuộc ceph-mgr. Trong bản Nautilus thì thành phần dashboard được cả tiến khá lớn. Cung cấp nhiều quyền hạn thao tác với CEPH hơn các bản trước đó (thành phần này được đóng góp chính bởi team SUSE).

Thực hiện trên node ceph1 việc cài đặt này.

Trong bản ceph nautilus 14.2.3 (tính đến ngày 06.09.2019), khi cài ceph dashboard theo các cách cũ gặp một vài vấn đề, cách xử lý như sau.

Cài thêm các gói bổ trợ trước khi cài

sudo yum install -y python-jwt python-routes

Tải ceph-dashboad ceph-mgr-dashboard-14.2.3-0.el7.noarch.rpmceph-grafana-dashboards-14.2.3-0.el7.noarch.rpm. Lưu ý nên đúng phiên bản với ceph ở trên.

sudo rpm -Uvh http://download.ceph.com/rpm-nautilus/el7/noarch/ceph-grafana-dashboards-14.2.3-0.el7.noarch.rpm  sudo rpm -Uvh http://download.ceph.com/rpm-nautilus/el7/noarch/ceph-mgr-dashboard-14.2.3-0.el7.noarch.rpm

Thực hiện kích hoạt ceph-mgr và ceph-dashboard

ceph-deploy mgr create ceph1 ceph2 ceph3 ceph mgr module enable dashboard --force ceph mgr module ls 

Kết quả

{     "enabled_modules": [         "dashboard",         "iostat",         "restful"     ],     "disabled_modules": [] }

Tạo cert cho ceph-dashboad

sudo ceph dashboard create-self-signed-cert 

Kết quả trả về dòng Self-signed certificate created là thành công.

Tạo tài khoản cho ceph-dashboard, trong hướng dẫn này tạo tài khoản tên là cephadmin và mật khẩu là matkhau2019@

ceph dashboard ac-user-create cephadmin matkhau2019@ administrator 

Kết quả trả về là

{"username": "cephadmin", "lastUpdate": 1567415960, "name": null, "roles": ["administrator"], "password": "$2b$12$QhFs2Yo9KTICIqT8v5xLC.kRCjzuLyXqyzBQVQ4MwQhDbSLKni6pC", "email": null} 

Kiểm tra xem ceph-dashboard đã được cài đặt thành công hay chưa

ceph mgr services 

Kết quả trả về sẽ là dòng bên dưới.

{     "dashboard": "https://0.0.0.0:8443/" } 

Trước khi tiến hành đăng nhập vào web, có thể kiểm tra trạng thái cluser bằng lệnh ceph -s . Ta sẽ có kết quả trạng thái là OK.

Kết quả sẽ là địa chỉ truy cập ceph-dashboad, ta có thể vào bằng địa chỉ IP thay vì hostname, https://Dia_Chi_IP_CEPH1:8443

Ta có một số màn hình đăng nhập

3.3.4. Cấu hình object storage và khai báo sử dụng trên ceph-dashboard

Trong hướng dẫn này sử dụng node ceph2 để cài đặt thành phần Radosgw để cung cấp object storage.

Đứng trên ceph1 tiếp tục thực hiện lệnh dưới để triển khai thành phần radosgw. Lưu ý, lúc này vẫn đang dùng tài khoản cephuser và đứng ở thư mục my-cluster

ceph-deploy install --rgw ceph2
ceph-deploy rgw create ceph2

Kết quả lệnh sẽ là:

..... [ceph_deploy.rgw][INFO  ] Distro info: CentOS Linux 7.6.1810 Core [ceph_deploy.rgw][DEBUG ] remote host will use systemd [ceph_deploy.rgw][DEBUG ] deploying rgw bootstrap to ceph2 [ceph2][DEBUG ] write cluster configuration to /etc/ceph/{cluster}.conf [ceph2][WARNIN] rgw keyring does not exist yet, creating one [ceph2][DEBUG ] create a keyring file [ceph2][DEBUG ] create path recursively if it doesn't exist [ceph2][INFO  ] Running command: sudo ceph --cluster ceph --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/ceph.keyring auth get-or-create client.rgw.ceph2 osd allow rwx mon allow rw -o /var/lib/ceph/radosgw/ceph-rgw.ceph2/keyring [ceph2][INFO  ] Running command: sudo systemctl enable [email protected] [ceph2][WARNIN] Created symlink from /etc/systemd/system/ceph-radosgw.target.wants/[email protected] to /usr/lib/systemd/system/[email protected]. [ceph2][INFO  ] Running command: sudo systemctl start [email protected] [ceph2][INFO  ] Running command: sudo systemctl enable ceph.target [ceph_deploy.rgw][INFO  ] The Ceph Object Gateway (RGW) is now running on host ceph2 and default port 7480

Thực hiện khai báo user để có thể sử dụng được dashboard để quản lý object storage, ta sẽ có tùy chọn “–system

radosgw-admin user create --uid=Onetadmin --display-name=Onet --system

Kết quả trả về sẽ là thông tin về access_key secret_key của user nhanhoadmin, lưu lại thông tin này để dùng cho lệnh khai báo tích hợp với dashboad

"keys": [ 	{ 		"user": "Onetadmin", 		"access_key": "CQF41G7RFFSXV37NXE82", 		"secret_key": "S7SC3kGkdT22Okw6cbwThYIxerPH40J3UZgLk44C" 	} ],

Thực hiện khai báo access_key và secret_keytích hợp với dashboard của ceph. Lưu ý phải dùng chuỗi đối với kết quả của bạn nhé.

ceph dashboard set-rgw-api-access-key CQF41G7RFFSXV37NXE82 ceph dashboard set-rgw-api-secret-key S7SC3kGkdT22Okw6cbwThYIxerPH40J3UZgLk44C ceph dashboard set-rgw-api-ssl-verify False

Tới đây, ta chuyển sang bước login vào dashboard của CEPH để xem các thành phần của object storage vừa khai báo, cụ thể như sau

Kết thúc phần 1

Tới đây, phần 1 của chuỗi bài LAB đã kết thúc, trong các phần tiếp theo Onet sẽ hướng dẫn cấu hình để tạo ra các pool cung cấp block storage, object storage để cung cấp cho các client sử dụng.

Rất vui khi được góp ý và chia sẻ tài liệu này cùng các bạn.
Trân trọng cám ơn

Related Posts
Leave a Reply

Your email address will not be published.Required fields are marked *