From 17187403b76bbb63dfbd2080204deb1c03e4538d Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Thu, 12 Mar 2020 21:22:03 +0700 Subject: [PATCH 01/44] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ee5366..2c7a9b4 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ # Tài liệu vận hành +## Tắt/bật cluster + +[Tắt/bật cluster](docs/operating/off-on-cluster.md) + ## CheatSheet thao tác [Ceph Cheat sheet](docs/operating/ceph-cheat-sheet.md) @@ -62,4 +66,4 @@ - [Node Ceph hỏng](docs/operating/ceph-hardware-crash.md) -- [Note case vận hành](docs/operating/note.md) \ No newline at end of file +- [Note case vận hành](docs/operating/note.md) From 20b3dde5da9d18f59269cc6c0bd8e0bed6f6f9c8 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Thu, 12 Mar 2020 21:23:25 +0700 Subject: [PATCH 02/44] Create off-on-cluster.md --- docs/operating/off-on-cluster.md | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 docs/operating/off-on-cluster.md diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md new file mode 100644 index 0000000..3d49d5d --- /dev/null +++ b/docs/operating/off-on-cluster.md @@ -0,0 +1,33 @@ +Below steps are taken from redhat documentation: + +Follow the below procedure for Shutting down the Ceph Cluster: +1. Stop the clients from using the RBD images/Rados Gateway on this +cluster or any other clients. +2. The cluster must be in healthy state before proceeding. +3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags +#ceph osd set noout +#ceph osd set norecover +#ceph osd set norebalance +#ceph osd set nobackfill +#ceph osd set nodown +#ceph osd set pause +4. Shutdown osd nodes one by one +5. Shutdown monitor nodes one by one +6. Shutdown admin node + +For Bringing up follow the below order: +1. Power on the admin node +2. Power on the monitor nodes +3. Power on the osd nodes +4. Wait for all the nodes to come up , Verify all the services are +up and the connectivity is fine between the nodes. +5. Unset all the noout,norecover,noreblance, nobackfill, nodown and +pause flags. +#ceph osd unset noout +#ceph osd unset norecover +#ceph osd unset norebalance +#ceph osd unset nobackfill +#ceph osd unset nodown +#ceph osd unset pause +6. Check and verify the cluster is in healthy state, Verify all the +clients are able to access the cluster. From a48ec8071a4a6dfbae3a3e8687603138d36d5d73 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Thu, 12 Mar 2020 21:23:57 +0700 Subject: [PATCH 03/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index 3d49d5d..7653378 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -5,12 +5,14 @@ Follow the below procedure for Shutting down the Ceph Cluster: cluster or any other clients. 2. The cluster must be in healthy state before proceeding. 3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags +``` #ceph osd set noout #ceph osd set norecover #ceph osd set norebalance #ceph osd set nobackfill #ceph osd set nodown #ceph osd set pause +``` 4. Shutdown osd nodes one by one 5. Shutdown monitor nodes one by one 6. Shutdown admin node @@ -23,11 +25,13 @@ For Bringing up follow the below order: up and the connectivity is fine between the nodes. 5. Unset all the noout,norecover,noreblance, nobackfill, nodown and pause flags. +``` #ceph osd unset noout #ceph osd unset norecover #ceph osd unset norebalance #ceph osd unset nobackfill #ceph osd unset nodown #ceph osd unset pause +``` 6. Check and verify the cluster is in healthy state, Verify all the clients are able to access the cluster. From b4a13cde41ffeefd58b480350a90d68211981f15 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Fri, 13 Mar 2020 16:35:55 +0700 Subject: [PATCH 04/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index 7653378..1b07526 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -1,8 +1,7 @@ Below steps are taken from redhat documentation: Follow the below procedure for Shutting down the Ceph Cluster: -1. Stop the clients from using the RBD images/Rados Gateway on this -cluster or any other clients. +1. Stop the clients from using the RBD images/Rados Gateway on this cluster or any other clients. 2. The cluster must be in healthy state before proceeding. 3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags ``` @@ -21,10 +20,8 @@ For Bringing up follow the below order: 1. Power on the admin node 2. Power on the monitor nodes 3. Power on the osd nodes -4. Wait for all the nodes to come up , Verify all the services are -up and the connectivity is fine between the nodes. -5. Unset all the noout,norecover,noreblance, nobackfill, nodown and -pause flags. +4. Wait for all the nodes to come up , Verify all the services are up and the connectivity is fine between the nodes. +5. Unset all the noout,norecover,noreblance, nobackfill, nodown and pause flags. ``` #ceph osd unset noout #ceph osd unset norecover @@ -33,5 +30,4 @@ pause flags. #ceph osd unset nodown #ceph osd unset pause ``` -6. Check and verify the cluster is in healthy state, Verify all the -clients are able to access the cluster. +6. Check and verify the cluster is in healthy state, Verify all the clients are able to access the cluster. From 49697e2d156371a4d01ca662ed5324479bdcfc1a Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Fri, 13 Mar 2020 17:39:00 +0700 Subject: [PATCH 05/44] Update ceph-nautilus.md --- docs/setup/ceph-nautilus.md | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/docs/setup/ceph-nautilus.md b/docs/setup/ceph-nautilus.md index c872729..609a85e 100644 --- a/docs/setup/ceph-nautilus.md +++ b/docs/setup/ceph-nautilus.md @@ -95,6 +95,46 @@ yum update -y ```sh curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | bash ``` +Hoặc +```sh +#!/bin/bash +echo "Install rsyslog" +yum -y install rsyslog || apt-get -y install rsyslog +systemctl enable rsyslog.service || chkconfig rsyslog on +systemctl start rsyslog.service || service rsyslog start + +echo "Config log History" +touch ~/.bash_profile +cp ~/{.bash_profile,.bash_profile.bk} +echo "export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug \"[\$(echo \$SSH_CLIENT | cut -d\" \" -f1)] # \$(history 1 | sed \"s/^[ ]*[0-9]\+[ ]*//\" )\"'" >> ~/.bash_profile +echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile +touch /var/log/cmdlog.log + +echo "Config rsyslog" +mv /etc/rsyslog.{conf,conf.bk} +cat >> /etc/rsyslog.conf << EOF +\$ModLoad imuxsock +\$ModLoad imklog +\$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat +\$FileOwner root +\$FileGroup adm +\$FileCreateMode 0640 +\$DirCreateMode 0755 +\$Umask 0022 +auth,authpriv.*-/var/log/auth.log +daemon.*-/var/log/daemon.log +kern.*-/var/log/kern.log +cron.*-/var/log/cron.log +user.*-/var/log/user.log +mail.*-/var/log/mail.log +local7.*-/var/log/boot.log +local6.*-/var/log/cmdlog.log +EOF + +echo "Restart rsyslog" +systemctl restart rsyslog.service || service rsyslog restart +source ~/.bash_profile +``` - Bổ sung user `cephuser` ```sh From ef44bdf66587a46f117a1606c5f10c39f61d5b90 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 09:36:54 +0700 Subject: [PATCH 06/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 40 ++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index 1b07526..794390a 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -1,33 +1,39 @@ -Below steps are taken from redhat documentation: +Below steps are taken from: https://ceph.io/planet/how-to-do-a-ceph-cluster-maintenance-shutdown/ -Follow the below procedure for Shutting down the Ceph Cluster: +- Shutting down follow the below order: 1. Stop the clients from using the RBD images/Rados Gateway on this cluster or any other clients. 2. The cluster must be in healthy state before proceeding. 3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags -``` -#ceph osd set noout -#ceph osd set norecover -#ceph osd set norebalance -#ceph osd set nobackfill -#ceph osd set nodown -#ceph osd set pause +```sh +##Run on ceph1(mng node) + +ceph osd set noout +ceph osd set norecover +ceph osd set norebalance +ceph osd set nobackfill +ceph osd set nodown +ceph osd set pause ``` 4. Shutdown osd nodes one by one 5. Shutdown monitor nodes one by one 6. Shutdown admin node -For Bringing up follow the below order: + +- Bringing up follow the below order: 1. Power on the admin node 2. Power on the monitor nodes 3. Power on the osd nodes 4. Wait for all the nodes to come up , Verify all the services are up and the connectivity is fine between the nodes. 5. Unset all the noout,norecover,noreblance, nobackfill, nodown and pause flags. + +```sh +##Run on ceph1(mng node) +ceph osd unset noout +ceph osd unset norecover +ceph osd unset norebalance +ceph osd unset nobackfill +ceph osd unset nodown +ceph osd unset pause ``` -#ceph osd unset noout -#ceph osd unset norecover -#ceph osd unset norebalance -#ceph osd unset nobackfill -#ceph osd unset nodown -#ceph osd unset pause -``` + 6. Check and verify the cluster is in healthy state, Verify all the clients are able to access the cluster. From fbf8bad71acc371225168473a2a81837a82cb08c Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 09:38:02 +0700 Subject: [PATCH 07/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index 794390a..ec07711 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -1,6 +1,6 @@ Below steps are taken from: https://ceph.io/planet/how-to-do-a-ceph-cluster-maintenance-shutdown/ -- Shutting down follow the below order: +# Shutting down follow the below order: 1. Stop the clients from using the RBD images/Rados Gateway on this cluster or any other clients. 2. The cluster must be in healthy state before proceeding. 3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags @@ -19,7 +19,7 @@ ceph osd set pause 6. Shutdown admin node -- Bringing up follow the below order: +# Bringing up follow the below order: 1. Power on the admin node 2. Power on the monitor nodes 3. Power on the osd nodes From e9dbb2a81490dc4db3d0338759ccdb5c8c281a27 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 09:59:20 +0700 Subject: [PATCH 08/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index ec07711..fc6e183 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -3,6 +3,7 @@ Below steps are taken from: https://ceph.io/planet/how-to-do-a-ceph-cluster-main # Shutting down follow the below order: 1. Stop the clients from using the RBD images/Rados Gateway on this cluster or any other clients. 2. The cluster must be in healthy state before proceeding. +> Check status on: https://ip-ceph01:8443 3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags ```sh ##Run on ceph1(mng node) @@ -14,6 +15,10 @@ ceph osd set nobackfill ceph osd set nodown ceph osd set pause ``` +> Status showing +``` + OSDMAP_FLAGS: pauserd,pausewr,nodown,noout,nobackfill,norebalance,norecover flag(s) set +``` 4. Shutdown osd nodes one by one 5. Shutdown monitor nodes one by one 6. Shutdown admin node From ffc8e0dc90768723b2013e9e3c0cc9b81ea088c6 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 21:16:45 +0700 Subject: [PATCH 09/44] Update ceph-nautilus.md --- docs/setup/ceph-nautilus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus.md b/docs/setup/ceph-nautilus.md index 609a85e..ec13011 100644 --- a/docs/setup/ceph-nautilus.md +++ b/docs/setup/ceph-nautilus.md @@ -427,7 +427,7 @@ ceph-deploy mgr create ceph01 ceph02 yum install ceph-mgr-dashboard -y ceph mgr module enable dashboard ceph dashboard create-self-signed-cert -ceph dashboard set-login-credentials +ceph dashboard ac-user-create administrator ceph mgr services ``` From 957e12808f11a81fec7feb149428391bd1727879 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 22:19:20 +0700 Subject: [PATCH 10/44] Rename ceph-nautilus.md to ceph-nautilus-centos.md --- docs/setup/{ceph-nautilus.md => ceph-nautilus-centos.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/setup/{ceph-nautilus.md => ceph-nautilus-centos.md} (100%) diff --git a/docs/setup/ceph-nautilus.md b/docs/setup/ceph-nautilus-centos.md similarity index 100% rename from docs/setup/ceph-nautilus.md rename to docs/setup/ceph-nautilus-centos.md From d554a367a133ae8b4469945407496399986ffa94 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 22:24:02 +0700 Subject: [PATCH 11/44] Create ceph-nautilus.md --- docs/setup/ceph-nautilus.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/setup/ceph-nautilus.md diff --git a/docs/setup/ceph-nautilus.md b/docs/setup/ceph-nautilus.md new file mode 100644 index 0000000..b88697a --- /dev/null +++ b/docs/setup/ceph-nautilus.md @@ -0,0 +1,5 @@ + +[Cài đặt Ceph bản Nautilus trên centos](docs/setup/ceph-nautilus-centos.md) + + +[Cài đặt Ceph bản Nautilus trên ubuntu](docs/setup/ceph-nautilus-ubuntu.md) From 9edff22f306ff4bc333ee691043db8c1ae836fc0 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 22:26:30 +0700 Subject: [PATCH 12/44] Update ceph-nautilus.md --- docs/setup/ceph-nautilus.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/setup/ceph-nautilus.md b/docs/setup/ceph-nautilus.md index b88697a..0c61739 100644 --- a/docs/setup/ceph-nautilus.md +++ b/docs/setup/ceph-nautilus.md @@ -1,5 +1,5 @@ -[Cài đặt Ceph bản Nautilus trên centos](docs/setup/ceph-nautilus-centos.md) +[Cài đặt Ceph bản Nautilus trên centos](ceph-nautilus-centos.md) -[Cài đặt Ceph bản Nautilus trên ubuntu](docs/setup/ceph-nautilus-ubuntu.md) +[Cài đặt Ceph bản Nautilus trên ubuntu](ceph-nautilus-ubuntu.md) From 8c4e6f2764f6dea079e3c02b50563c0dd0c6efaf Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sat, 14 Mar 2020 23:11:36 +0700 Subject: [PATCH 13/44] Create ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 397 +++++++++++++++++++++++++++++ 1 file changed, 397 insertions(+) create mode 100644 docs/setup/ceph-nautilus-ubuntu.md diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md new file mode 100644 index 0000000..338f3c6 --- /dev/null +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -0,0 +1,397 @@ +## Hướng dẫn cài đặt CEPH sử dụng `ceph-deploy` + +### Mục tiêu LAB +- Mô hình này sử dụng 3 server, trong đó: +- Host `ceph01` cài đặt `ceph-deploy`, `ceph-mon`,` ceph-osd`, `ceph-mgr` +- Host `ceph02` cài đặt `ceph-osd` +- Host `ceph03` cài đặt `ceph-osd` +- Mô hình khá cơ bản cho việc áp dụng vào môi trường Product + +## Chuẩn bị và môi trường LAB (3 Node) + +- Ubuntu 18.04.4 - 64 bit +- 03: HDD, trong đó: + - `sda`: sử dụng để cài OS + - `vdb`,`vdc`: sử dụng làm OSD (nơi chứa dữ liệu) +- 03 NICs: + - `eth0`: dùng để ssh và tải gói cài đặt + - `eth1`: dùng để các trao đổi thông tin giữa các node Ceph, cũng là đường Client kết nối vào + - `eth2`: dùng để đồng bộ dữ liệu giữa các OSD +- Phiên bản cài đặt : Ceph Nautilus + + +## Mô hình +- Sử dụng mô hình + +![](../../images/topo.png) + + +## IP Planning +- Phân hoạch IP cho các máy chủ trong mô hình trên + +![](../../images/ip-planning1.png) + +## Bổ sung file hosts +```sh +cat << EOF >> /etc/hosts +10.10.13.61 ceph01 +10.10.13.62 ceph02 +10.10.13.63 ceph03 +EOF +``` +> Lưu ý network setup trong /etc/hosts chính là đường `eth1` dùng để các trao đổi thông tin giữa các node Ceph, cũng là đường Client kết nối vào + +## Cài đặt clushter shell +```sh +sudo apt install clustershell -y +echo 'all: ceph[01-03]' > /etc/clustershell/groups +``` + +## Tạo user "cephuser" trên tất cả các node +sudo useradd -m -s /bin/bash cephuser +passwd cephuser +echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser +sudo chmod 0440 /etc/sudoers.d/cephuser +sudo sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers + +su - cephuser +ssh-keygen + +for i in {1..3}; do ssh-copy-id ceph$i ; done + +## Các bước chuẩn bị trên từng Server + +- Cài đặt Python, ntp +```sh +clush -a "sudo apt install ntp python -y" +``` + +- Kiểm tra thời gian +```sh +clush -a "timedatectl" +``` + +- Set hwclock +```sh +clush -a "hwclock --systohc" +``` + +- Đặt hostname (chạy lệnh trên từng node) +```sh +hostnamectl set-hostname ceph01 +``` + +- Cài đặt CMD_log +```sh +clush -a "curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" +``` + +Hoặc +```sh +#!/bin/bash +echo "Install rsyslog" +yum -y install rsyslog || apt-get -y install rsyslog +systemctl enable rsyslog.service || chkconfig rsyslog on +systemctl start rsyslog.service || service rsyslog start + +echo "Config log History" +touch ~/.bash_profile +cp ~/{.bash_profile,.bash_profile.bk} +echo "export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug \"[\$(echo \$SSH_CLIENT | cut -d\" \" -f1)] # \$(history 1 | sed \"s/^[ ]*[0-9]\+[ ]*//\" )\"'" >> ~/.bash_profile +echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile +touch /var/log/cmdlog.log + +echo "Config rsyslog" +mv /etc/rsyslog.{conf,conf.bk} +cat >> /etc/rsyslog.conf << EOF +\$ModLoad imuxsock +\$ModLoad imklog +\$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat +\$FileOwner root +\$FileGroup adm +\$FileCreateMode 0640 +\$DirCreateMode 0755 +\$Umask 0022 +auth,authpriv.*-/var/log/auth.log +daemon.*-/var/log/daemon.log +kern.*-/var/log/kern.log +cron.*-/var/log/cron.log +user.*-/var/log/user.log +mail.*-/var/log/mail.log +local7.*-/var/log/boot.log +local6.*-/var/log/cmdlog.log +EOF + +echo "Restart rsyslog" +systemctl restart rsyslog.service || service rsyslog restart +source ~/.bash_profile +``` + +- Khởi động lại máy +```sh +init 6 +``` + +## Cài đặt Ceph + +Bổ sung repo cho ceph trên tất cả các node +```sh +clush -a "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" +clush -a "sudo apt update -y" +clush -a "echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list" +``` + +Các bước ở dưới được thực hiện toàn toàn trên Node `ceph01` + +- Cài đặt `ceph-deploy` +```sh +sudo apt -y install ceph-deploy +``` + +- Kiểm tra cài đặt +```sh +ceph-deploy --version +``` + +- Cấu hình user ssh cho ceph-deploy +```sh +cat < ~/.ssh/config +Host ceph01 + Hostname ceph01 + User cephuser +Host ceph02 + Hostname ceph02 + User cephuser +Host ceph03 + Hostname ceph03 + User cephuser +EOF +``` + +- Tạo các thư mục `ceph-deploy` để thao tác cài đặt vận hành Cluster +```sh +mkdir ~/ceph-deploy ; cd ~/ceph-deploy +``` + +- Khởi tại file cấu hình cho cụm với node quản lý là `ceph01` +```sh +ceph-deploy new ceph01 ceph02 ceph03 +``` + +- Kiểm tra lại thông tin folder `ceph-deploy` +```sh +[cephuser@ceph01 ceph-deploy]$ ls -lah +total 12K +drwxr-xr-x 2 cephuser cephuser 75 Jan 31 16:31 . +dr-xr-xr-x. 18 cephuser cephuser 243 Jan 31 16:29 .. +-rw-r--r-- 1 cephuser cephuser2.9K Jan 31 16:31 ceph-deploy-ceph.log +-rw-r--r-- 1 cephuser cephuser 195 Jan 31 16:31 ceph.conf +-rw------- 1 cephuser cephuser 73 Jan 31 16:31 ceph.mon.keyring +[cephuser@ceph01 ceph-deploy]$ +``` +- `ceph.conf` : file config được tự động khởi tạo +- `ceph-deploy-ceph.log` : file log của toàn bộ thao tác đối với việc sử dụng lệnh `ceph-deploy` +- `ceph.mon.keyring` : Key monitoring được ceph sinh ra tự động để khởi tạo Cluster + +- Chúng ta sẽ bổ sung thêm vào file `ceph.conf` một vài thông tin cơ bản như sau: +```sh +cat << EOF >> ceph.conf +osd pool default size = 2 +osd pool default min size = 1 +osd pool default pg num = 128 +osd pool default pgp num = 128 + +osd crush chooseleaf type = 1 + +public network = 10.10.13.0/24 +cluster network = 10.10.14.0/24 +EOF +``` +- Bổ sung thêm định nghĩa + + `public network` : Đường trao đổi thông tin giữa các node Ceph và cũng là đường client kết nối vào + + `cluster network` : Đường đồng bộ dữ liệu +- Bổ sung thêm `default size replicate` +- Bổ sung thêm `default pg num` + + +- Cài đặt ceph trên toàn bộ các node ceph +```sh +ceph-deploy install --release nautilus ceph01 ceph02 ceph03 +``` + +- Kiểm tra sau khi cài đặt trên cả 3 node +```sh +ceph -v +``` + +- Khởi tạo cluster với các node `mon` (Monitor-quản lý) dựa trên file `ceph.conf` +```sh +ceph-deploy mon create-initial +``` + +- Sau khi thực hiện lệnh phía trên sẽ sinh thêm ra 05 file : +`ceph.bootstrap-mds.keyring`, `ceph.bootstrap-mgr.keyring`, `ceph.bootstrap-osd.keyring`, `ceph.client.admin.keyring` và `ceph.bootstrap-rgw.keyring`. Quan sát bằng lệnh `ll -alh` + +```sh +[cephuser@ceph01 ceph-deploy]# ls -lah +total 348K +drwxr-xr-x 2 cephuser cephuser 244 Feb 1 11:40 . +dr-xr-xr-x. 18 cephuser cephuser 243 Feb 1 11:29 .. +-rw-r--r-- 1 cephuser cephuser258K Feb 1 11:40 ceph-deploy-ceph.log +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-mds.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-mgr.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-osd.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-rgw.keyring +-rw------- 1 cephuser cephuser 151 Feb 1 11:40 ceph.client.admin.keyring +-rw-r--r-- 1 cephuser cephuser 195 Feb 1 11:29 ceph.conf +-rw------- 1 cephuser cephuser 73 Feb 1 11:29 ceph.mon.keyring +``` + +- Để node `ceph01`, `ceph02`, `ceph03` có thể thao tác với cluster chúng ta cần gán cho node quyền admin bằng cách bổ sung key `admin.keying` cho node +```sh +ceph-deploy admin ceph01 ceph02 ceph03 +``` +> Kiểm tra bằng lệnh +```sh +[cephuser@ceph01 ceph-deploy]# sudo ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 1.09337s) + mgr: no daemons active + osd: 0 osds: 0 up, 0 in + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 0 B used, 0 B / 0 B avail + pgs: +``` + +## Khởi tạo MGR + +Ceph-mgr là thành phần cài đặt yêu cầu cần khởi tạo từ bản luminous, có thể cài đặt trên nhiều node hoạt động theo cơ chế `Active-Passive` + +- Cài đặt ceph-mgr trên ceph01 +```sh +ceph-deploy mgr create ceph01 ceph02 +``` + +- Kiểm tra cài đặt +```sh +[cephuser@ceph01 ceph-deploy]# sudo ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 53s) + mgr: ceph01(active, since 11s), standbys: ceph02 + osd: 0 osds: 0 up, 0 in + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 0 B used, 0 B / 0 B avail + pgs: +``` + +- Ceph-mgr hỗ trợ dashboard để quan sát trạng thái của cluster, Enable mgr dashboard trên host ceph01 +> Sẽ cài đặt `ceph-mgr-dashboard` trên cả `ceph01` và `ceph02` + +```sh +clush -w ceph[01,02] "sudo apt install ceph-mgr-dashboard -y" +sudo ceph mgr module enable dashboard +sudo ceph dashboard create-self-signed-cert +sudo ceph dashboard ac-user-create administrator +sudo ceph mgr services +``` + + +- Truy cập vào mgr dashboard với username và password vừa đặt ở phía trên để kiểm tra +```sh +https://:8443 +``` +![](../../images/dashboard-n.png) + + +## Khởi tạo OSD + +Tạo OSD thông qua ceph-deploy tại host `ceph01` + +- Thực hiện zapdisk +```sh +ceph-deploy disk zap ceph01 /dev/vdb +ceph-deploy disk zap ceph01 /dev/vdc +``` + +- Tạo OSD với ceph-deploy +```sh +ceph-deploy osd create --data /dev/vdb ceph01 +ceph-deploy osd create --data /dev/vdc ceph01 +``` + +- Thao tác với các ổ trên `ceph02` và `ceph03` tương tự. Vẫn thực hiện trên thư mục `ceph-deploy` trên `ceph01` +```sh +# ceph02 +ceph-deploy disk zap ceph02 /dev/vdb +ceph-deploy disk zap ceph02 /dev/vdc +ceph-deploy osd create --data /dev/vdb ceph02 +ceph-deploy osd create --data /dev/vdc ceph02 + +# ceph03 +ceph-deploy disk zap ceph03 /dev/vdb +ceph-deploy disk zap ceph03 /dev/vdc +ceph-deploy osd create --data /dev/vdb ceph03 +ceph-deploy osd create --data /dev/vdc ceph03 +``` + +- Kiểm tra osd vừa tạo bằng lệnh +```sh +ceph osd tree +``` +- Kết quả +```sh +[cephuser@ceph01 ceph-deploy]$ ceph osd tree +ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF +-1 0.16974 root default +-3 0.05658 host ceph01 + 0 hdd 0.02829 osd.0 up 1.00000 1.00000 + 1 hdd 0.02829 osd.1 up 1.00000 1.00000 +-5 0.05658 host ceph02 + 2 hdd 0.02829 osd.2 up 1.00000 1.00000 + 3 hdd 0.02829 osd.3 up 1.00000 1.00000 +-7 0.05658 host ceph03 + 4 hdd 0.02829 osd.4 up 1.00000 1.00000 + 5 hdd 0.02829 osd.5 up 1.00000 1.00000 +``` + +## Kiểm tra +Thực hiện trên ceph01 +- Kiểm tra trạng thái của CEPH sau khi cài +```sh +ceph -s +``` + +- Kết quả của lệnh trên như sau: +```sh +[cephuser@ceph01 ceph-deploy]$ ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 10m) + mgr: ceph01(active, since 7m), standbys: ceph02 + osd: 6 osds: 6 up (since 51s), 6 in (since 51s) + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 6.0 GiB used, 168 GiB / 174 GiB avail + pgs: +``` + +- Nếu có dòng `health HEALTH_OK` thì việc cài đặt đã ok. From fbb1c1db84fc8ff2c4ed3e2ae428b939b8dbfeb5 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 19:16:59 +0700 Subject: [PATCH 14/44] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 2c7a9b4..82d75bb 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ # Tài liệu vận hành +## Thêm osd + +[Thêm osd](docs/operating/add-osd.md) + ## Tắt/bật cluster [Tắt/bật cluster](docs/operating/off-on-cluster.md) From 839ddcf3f8a8623f083878c72cafce9fcd234298 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 19:39:00 +0700 Subject: [PATCH 15/44] Create add-osd.md --- docs/operating/add-osd.md | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docs/operating/add-osd.md diff --git a/docs/operating/add-osd.md b/docs/operating/add-osd.md new file mode 100644 index 0000000..7bd1606 --- /dev/null +++ b/docs/operating/add-osd.md @@ -0,0 +1,61 @@ +## Tạo user "cephuser" trên ceph4 +```sh +sudo useradd -m -s /bin/bash cephuser +passwd cephuser +echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser +sudo chmod 0440 /etc/sudoers.d/cephuser +sudo sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers +``` +##Trên ceph1, lệnh bên dưới đều thao tác bằng user "cephuser" +Thêm node mới (ceph4) vào file hosts: +``` +/etc/hots +``` +File quản lý clush: +``` +/etc/clustershell/groups +``` +## Copy id từ ceph1 lên ceph4 +```sh +ssh-copy-id ceph4 +``` +## Cài đặt python, ntp +```sh +ssh ceph4 "sudo apt install python ntp -y; timedatectl" +``` +## Thay đổi hostname (nếu cần) +```sh +ssh ceph4 "hostnamectl set-hostname ceph4" +``` +## Cài cmdlog +ssh ceph4 "curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" + +## Add key, resource +```sh +ssh ceph4 "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - ; sudo apt update -y" +ssh ceph4 "echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list" +``` + +## Cài ceph lên node ceph4 +```sh +ceph-deploy install --release nautilus ceph4 + +``` +## Kiểm tra, so sánh, phiên bản +```sh +clush -a "ceph --version" +``` + +## Chỉ định, tạo osd trên ceph4 +```sh +ceph-deploy disk zap ceph4 /dev/vdb +ceph-deploy disk zap ceph4 /dev/vdc +ceph-deploy osd create --data /dev/vdb ceph4 +ceph-deploy osd create --data /dev/vdc ceph4 +``` + +## Kiểm tra lại +```sh +sudo ceph --status +sudo ceph osd tree +``` From 8b531bae9e82e7be704215fdbcb6e95a8be1a207 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 19:43:12 +0700 Subject: [PATCH 16/44] Update add-osd.md --- docs/operating/add-osd.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/operating/add-osd.md b/docs/operating/add-osd.md index 7bd1606..a2257d9 100644 --- a/docs/operating/add-osd.md +++ b/docs/operating/add-osd.md @@ -1,3 +1,5 @@ +## Thêm mới osd cho cluster ceph đã cài đặt trên ubuntu 18.04 + ## Tạo user "cephuser" trên ceph4 ```sh sudo useradd -m -s /bin/bash cephuser @@ -6,12 +8,12 @@ echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser sudo chmod 0440 /etc/sudoers.d/cephuser sudo sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers ``` -##Trên ceph1, lệnh bên dưới đều thao tác bằng user "cephuser" -Thêm node mới (ceph4) vào file hosts: +## Lệnh bên dưới đều thao tác bằng user "cephuser", trên node ceph1 +- Thêm node mới (ceph4) vào file hosts: ``` /etc/hots ``` -File quản lý clush: +- File quản lý clush: ``` /etc/clustershell/groups ``` From 3eaa15d5c9591db9785bb43f679857d255d705f5 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 21:38:38 +0700 Subject: [PATCH 17/44] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 82d75bb..6e19d25 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,12 @@ [Thêm osd](docs/operating/add-osd.md) +## Cập nhật osd + +## Xoá osd + +[Xoá osd](docs/operating/del-osd.md) + ## Tắt/bật cluster [Tắt/bật cluster](docs/operating/off-on-cluster.md) From 1a866746a0a684d84975b4b2b89259a1dd741eb8 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 21:42:07 +0700 Subject: [PATCH 18/44] Create del-osd.md --- docs/operating/del-osd.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 docs/operating/del-osd.md diff --git a/docs/operating/del-osd.md b/docs/operating/del-osd.md new file mode 100644 index 0000000..ee4aeb5 --- /dev/null +++ b/docs/operating/del-osd.md @@ -0,0 +1,18 @@ +## Kiểm tra trạng thái cluster + +```sh +ceph osd tree +``` +## Thực hiện gỡ osd (ví dụ osd có id là 6, trên ceph4) +```sh +sudo ceph osd out osd.6 +ssh ceph4 "sudo systemctl stop ceph-osd@6" +ssh ceph4 "sudo umount /var/lib/ceph/osd/ceph-6" +sudo ceph osd crush remove osd.6 +sudo ceph auth del osd.6 +sudo ceph osd rm osd.6 +ceph-deploy purge ceph4 +``` + + + From 0db9618f6615586ba166664743daa76e3dd91b07 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Sun, 15 Mar 2020 21:43:36 +0700 Subject: [PATCH 19/44] Update del-osd.md --- docs/operating/del-osd.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/operating/del-osd.md b/docs/operating/del-osd.md index ee4aeb5..8d78c21 100644 --- a/docs/operating/del-osd.md +++ b/docs/operating/del-osd.md @@ -16,3 +16,6 @@ ceph-deploy purge ceph4 +## Links tham khảo +https://www.virtualtothecore.com/adventures-with-ceph-storage-part-7-add-a-node-and-expand-the-cluster-storage/ +https://medium.com/@george.shuklin/how-to-remove-osd-from-ceph-cluster-b4c37cc0ec87 From aff1fcf57551cafc02daf329000b123884892f67 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 09:28:52 +0700 Subject: [PATCH 20/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 338f3c6..7590549 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -48,6 +48,7 @@ echo 'all: ceph[01-03]' > /etc/clustershell/groups ``` ## Tạo user "cephuser" trên tất cả các node +```sh sudo useradd -m -s /bin/bash cephuser passwd cephuser echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser @@ -58,7 +59,7 @@ su - cephuser ssh-keygen for i in {1..3}; do ssh-copy-id ceph$i ; done - +``` ## Các bước chuẩn bị trên từng Server - Cài đặt Python, ntp From 5d942c5e00bdff624f1eaadf7ec3740b9c22897b Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 10:16:17 +0700 Subject: [PATCH 21/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 7590549..72bab01 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -137,7 +137,7 @@ init 6 Bổ sung repo cho ceph trên tất cả các node ```sh -clush -a "wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" +clush -a "curl -Lso- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" clush -a "sudo apt update -y" clush -a "echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list" ``` From 75c29427efdc52e7f38579b0a316e64d9910d07e Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 19:14:47 +0700 Subject: [PATCH 22/44] Create enable-rgw.md --- docs/setup/enable-rgw.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/setup/enable-rgw.md diff --git a/docs/setup/enable-rgw.md b/docs/setup/enable-rgw.md new file mode 100644 index 0000000..ea3a22a --- /dev/null +++ b/docs/setup/enable-rgw.md @@ -0,0 +1,25 @@ +## Cài đặt rgw trên các node +```sh +cd /ceph-deploy +ceph-deploy install --rgw ceph01 ceph02 ceph03 +ceph-deploy rgw create ceph01 ceph02 ceph03 +``` + +## Tạo user (tuỳ chọn) +```sh +ceph dashboard ac-user-create administrator +``` +## Lấy acesskey, secret key của user +```sh +radosgw-admin user info --uid= +``` + +## Đặt quyền truy cập cho user +```sh +#radosgw-admin user create --uid= --display-name= --system +ceph dashboard set-rgw-api-access-key +ceph dashboard set-rgw-api-secret-key +``` + +Links tham khảo: +https://docs.ceph.com/docs/nautilus/mgr/dashboard/#enabling-the-object-gateway-management-frontend From 27ad6fc6b342c307441c0a17ea9ff4b9867779d7 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 19:16:28 +0700 Subject: [PATCH 23/44] Update enable-rgw.md --- docs/setup/enable-rgw.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/setup/enable-rgw.md b/docs/setup/enable-rgw.md index ea3a22a..2fea2b3 100644 --- a/docs/setup/enable-rgw.md +++ b/docs/setup/enable-rgw.md @@ -23,3 +23,5 @@ ceph dashboard set-rgw-api-secret-key Links tham khảo: https://docs.ceph.com/docs/nautilus/mgr/dashboard/#enabling-the-object-gateway-management-frontend +https://www.gitmemory.com/issue/rook/rook/3026/529326017 + From b68752468e58d18b48b1fb74ea19a70230a02694 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 20:40:08 +0700 Subject: [PATCH 24/44] Create bucket-err.md --- docs/operating/bucket-err.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 docs/operating/bucket-err.md diff --git a/docs/operating/bucket-err.md b/docs/operating/bucket-err.md new file mode 100644 index 0000000..9ad2828 --- /dev/null +++ b/docs/operating/bucket-err.md @@ -0,0 +1,20 @@ +``` +ceph version 14.2.8 (2d095e947a02261ce61424021bb43bd3022d35cb) nautilus (stable) +``` +## Khi tạo bucket mới có hiện lỗi + + +``` +500 - Internal Server Error +RGW REST API failed request with status code 416 '{"Code":"InvalidRange","BucketName":"1111111111","RequestId":"tx000000000000000000126-005e6f7c7e-fc18-default","HostId":"fc18-default-default"}' +``` +## Check lỗi trong "/var/log/ceph/ceph-client.rgw.ceph1.log" có xuất hiện: + +``` +rgw_init_ioctx ERROR: librados::Rados::pool_create returned (34) Numerical result out of range (this can be due to a pool or placement group misconfiguration, e.g. pg_num < pgp_num or mon_max_pg_per_osd exceeded) +``` +## - Nguyên nhân: có thể do quá nhiều PGs trên OSD. +## - Giải quyết: điều chỉnh lại PGs, xoá bớt pool ko cần thiết + +Links tham khảo: +https://ceph-users.ceph.narkive.com/zwPBOjFr/luminous-rgw-errors-at-start From 74fe17deb94d7b25aee6a9924271b604328457eb Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 20:41:33 +0700 Subject: [PATCH 25/44] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 6e19d25..52f39e8 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,8 @@ # Benchmark & Troubleshooting +- [Lỗi không tạo bucket](docs/operating/bucket-err.md) + - [Node Ceph hỏng](docs/operating/ceph-hardware-crash.md) - [Note case vận hành](docs/operating/note.md) From 1a6f51a03d72d7d96d41c666b94607bfcb3677c2 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Mon, 16 Mar 2020 21:03:16 +0700 Subject: [PATCH 26/44] Update note.md --- docs/operating/note.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/operating/note.md b/docs/operating/note.md index 76a1f66..e02d37e 100644 --- a/docs/operating/note.md +++ b/docs/operating/note.md @@ -1,3 +1,10 @@ # Note các case vận hành Ceph -[Sử dụng cached WALL & DB trên SSD cho OSD](bluestore-blockwall.md) \ No newline at end of file +[Sử dụng cached WALL & DB trên SSD cho OSD](bluestore-blockwall.md) + +# Bật, tắt mon_allow_pool_delete +``` +ceph config set mon mon_allow_pool_delete true +``` +Links tham khảo: +https://stackoverflow.com/a/58750208/4435643 From d1ff4927ea5595bbdcab17c96d5580403180db56 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 17 Mar 2020 13:14:12 +0900 Subject: [PATCH 27/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 72bab01..5b7173e 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -50,7 +50,7 @@ echo 'all: ceph[01-03]' > /etc/clustershell/groups ## Tạo user "cephuser" trên tất cả các node ```sh sudo useradd -m -s /bin/bash cephuser -passwd cephuser +sudo passwd cephuser echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser sudo chmod 0440 /etc/sudoers.d/cephuser sudo sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers @@ -64,7 +64,7 @@ for i in {1..3}; do ssh-copy-id ceph$i ; done - Cài đặt Python, ntp ```sh -clush -a "sudo apt install ntp python -y" +clush -a "sudo apt update && sudo apt install ntp python -y" ``` - Kiểm tra thời gian @@ -84,7 +84,7 @@ hostnamectl set-hostname ceph01 - Cài đặt CMD_log ```sh -clush -a "curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" +clush -a "wget -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" ``` Hoặc From aacaba0bf2b02cdbf0ad11946cc871700abd517c Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 17 Mar 2020 13:18:26 +0900 Subject: [PATCH 28/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 5b7173e..e18993a 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -84,7 +84,7 @@ hostnamectl set-hostname ceph01 - Cài đặt CMD_log ```sh -clush -a "wget -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" +clush -a "curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" ``` Hoặc From fdb95a464639240adaf274536127073b46bfe109 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 17 Mar 2020 15:36:02 +0900 Subject: [PATCH 29/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index e18993a..4891c27 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -138,8 +138,8 @@ init 6 Bổ sung repo cho ceph trên tất cả các node ```sh clush -a "curl -Lso- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" -clush -a "sudo apt update -y" clush -a "echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list" +clush -a "sudo apt update -y" ``` Các bước ở dưới được thực hiện toàn toàn trên Node `ceph01` From 37b9d151386777d7655777ba5eaceb7dae5e02a6 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 17 Mar 2020 18:53:34 +0900 Subject: [PATCH 30/44] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 52f39e8..ef3a9c2 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ # Tài liệu vận hành + ## Thêm osd [Thêm osd](docs/operating/add-osd.md) @@ -60,6 +61,10 @@ [Xoá osd](docs/operating/del-osd.md) +## Bật rgw + +[Bật rgw](docs/operating/enable-rgw.md) + ## Tắt/bật cluster [Tắt/bật cluster](docs/operating/off-on-cluster.md) From d0238d75bf62caf49b5a4a425253f527e0766441 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 17 Mar 2020 18:59:05 +0900 Subject: [PATCH 31/44] Create enable-rgw.md --- docs/operating/enable-rgw.md | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 docs/operating/enable-rgw.md diff --git a/docs/operating/enable-rgw.md b/docs/operating/enable-rgw.md new file mode 100644 index 0000000..bc2dadb --- /dev/null +++ b/docs/operating/enable-rgw.md @@ -0,0 +1,37 @@ +Enabling the Object Gateway Management Frontend + +To use the Object Gateway management functionality of the dashboard, you will need to provide the login credentials of a user with the system flag enabled. + +If you do not have a user which shall be used for providing those credentials, you will also need to create one: +``` +radosgw-admin user create --uid= --display-name= --system +``` +Take note of the keys access_key and secret_key in the output of this command. + +The credentials of an existing user can also be obtained by using radosgw-admin: +``` +radosgw-admin user info --uid= +``` +Finally, provide the credentials to the dashboard: +``` +ceph dashboard set-rgw-api-access-key +ceph dashboard set-rgw-api-secret-key +``` +If you are using a self-signed certificate in your Object Gateway setup, then you should disable certificate verification in the dashboard to avoid refused connections, e.g. caused by certificates signed by unknown CA or not matching the host name: +``` +ceph dashboard set-rgw-api-ssl-verify False +``` +Disable/enable dashboard + +``` +sudo ceph mgr module disable dashboard +sudo ceph mgr module enable dashboard +``` + +Khởi tạo node rgw trên cả 3 node ceph +``` +cd /ceph-deploy +ceph-deploy install --rgw ceph01 ceph02 ceph03 +ceph-deploy rgw create ceph01 ceph02 ceph03 +``` +Ceph Object Gateway được chạy trên Civetweb (được tích hợp sẵn trong ceph-radosgw daemon) bao gồm Apache và FastCGI. Civetweb của RGW chạy dưới port 7480 From 4c5d272a8aecb419766f9d4b1424a45aff7f1c09 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Thu, 19 Mar 2020 11:26:07 +0900 Subject: [PATCH 32/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 4891c27..433b428 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -62,13 +62,14 @@ for i in {1..3}; do ssh-copy-id ceph$i ; done ``` ## Các bước chuẩn bị trên từng Server -- Cài đặt Python, ntp +- Cài đặt Python, ntpdate ```sh -clush -a "sudo apt update && sudo apt install ntp python -y" +clush -a "sudo apt update && sudo apt install ntpdate python -y" ``` -- Kiểm tra thời gian +- Cập nhật thời gian ```sh +clush -a "sudo ntpdate 1.ro.pool.ntp.org" clush -a "timedatectl" ``` @@ -222,7 +223,7 @@ ceph-deploy install --release nautilus ceph01 ceph02 ceph03 - Kiểm tra sau khi cài đặt trên cả 3 node ```sh -ceph -v +clush -a "ceph -v" ``` - Khởi tạo cluster với các node `mon` (Monitor-quản lý) dựa trên file `ceph.conf` @@ -231,7 +232,7 @@ ceph-deploy mon create-initial ``` - Sau khi thực hiện lệnh phía trên sẽ sinh thêm ra 05 file : -`ceph.bootstrap-mds.keyring`, `ceph.bootstrap-mgr.keyring`, `ceph.bootstrap-osd.keyring`, `ceph.client.admin.keyring` và `ceph.bootstrap-rgw.keyring`. Quan sát bằng lệnh `ll -alh` +`ceph.bootstrap-mds.keyring`, `ceph.bootstrap-mgr.keyring`, `ceph.bootstrap-osd.keyring`, `ceph.client.admin.keyring` và `ceph.bootstrap-rgw.keyring`. ```sh [cephuser@ceph01 ceph-deploy]# ls -lah @@ -395,4 +396,4 @@ ceph -s pgs: ``` -- Nếu có dòng `health HEALTH_OK` thì việc cài đặt đã ok. +- Nếu có dòng `health HEALTH_OK` thì việc cài đặt đã thành công. From 66fb4dad0725243cefbcff410c934f73b5683df3 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 31 Mar 2020 18:57:07 +0900 Subject: [PATCH 33/44] Update ceph-nautilus-ubuntu.md --- docs/setup/ceph-nautilus-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-nautilus-ubuntu.md b/docs/setup/ceph-nautilus-ubuntu.md index 433b428..c7ab5f7 100644 --- a/docs/setup/ceph-nautilus-ubuntu.md +++ b/docs/setup/ceph-nautilus-ubuntu.md @@ -75,7 +75,7 @@ clush -a "timedatectl" - Set hwclock ```sh -clush -a "hwclock --systohc" +clush -a "sudo hwclock --systohc" ``` - Đặt hostname (chạy lệnh trên từng node) From 4fce6f2d622a277cc428faee28995527588c6ca1 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Tue, 31 Mar 2020 19:24:59 +0900 Subject: [PATCH 34/44] Create ceph-octopus.md --- docs/setup/ceph-octopus.md | 399 +++++++++++++++++++++++++++++++++++++ 1 file changed, 399 insertions(+) create mode 100644 docs/setup/ceph-octopus.md diff --git a/docs/setup/ceph-octopus.md b/docs/setup/ceph-octopus.md new file mode 100644 index 0000000..334f96b --- /dev/null +++ b/docs/setup/ceph-octopus.md @@ -0,0 +1,399 @@ +## Hướng dẫn cài đặt CEPH sử dụng `ceph-deploy` + +### Mục tiêu LAB +- Mô hình này sử dụng 3 server, trong đó: +- Host `ceph01` cài đặt `ceph-deploy`, `ceph-mon`,` ceph-osd`, `ceph-mgr` +- Host `ceph02` cài đặt `ceph-osd` +- Host `ceph03` cài đặt `ceph-osd` +- Mô hình khá cơ bản cho việc áp dụng vào môi trường Product + +## Chuẩn bị và môi trường LAB (3 Node) + +- Ubuntu 18.04.4 - 64 bit +- 03: HDD, trong đó: + - `sda`: sử dụng để cài OS + - `vdb`,`vdc`: sử dụng làm OSD (nơi chứa dữ liệu) +- 03 NICs: + - `eth0`: dùng để ssh và tải gói cài đặt + - `eth1`: dùng để các trao đổi thông tin giữa các node Ceph, cũng là đường Client kết nối vào + - `eth2`: dùng để đồng bộ dữ liệu giữa các OSD +- Phiên bản cài đặt : Ceph Nautilus + + +## Mô hình +- Sử dụng mô hình + +![](../../images/topo.png) + + +## IP Planning +- Phân hoạch IP cho các máy chủ trong mô hình trên + +![](../../images/ip-planning1.png) + +## Bổ sung file hosts +```sh +cat << EOF >> /etc/hosts +10.10.13.61 ceph01 +10.10.13.62 ceph02 +10.10.13.63 ceph03 +EOF +``` +> Lưu ý network setup trong /etc/hosts chính là đường `eth1` dùng để các trao đổi thông tin giữa các node Ceph, cũng là đường Client kết nối vào + +## Cài đặt clushter shell +```sh +sudo apt install clustershell -y +echo 'all: ceph[01-03]' > /etc/clustershell/groups +``` + +## Tạo user "cephuser" trên tất cả các node +```sh +sudo useradd -m -s /bin/bash cephuser +sudo passwd cephuser +echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser +sudo chmod 0440 /etc/sudoers.d/cephuser +sudo sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers + +su - cephuser +ssh-keygen + +for i in {1..3}; do ssh-copy-id ceph$i ; done +``` +## Các bước chuẩn bị trên từng Server + +- Cài đặt Python, ntpdate +```sh +clush -a "sudo apt update && sudo apt install ntpdate python -y" +``` + +- Cập nhật thời gian +```sh +clush -a "sudo ntpdate 1.ro.pool.ntp.org" +clush -a "timedatectl" +``` + +- Set hwclock +```sh +clush -a "sudo hwclock --systohc" +``` + +- Đặt hostname (chạy lệnh trên từng node) +```sh +hostnamectl set-hostname ceph01 +``` + +- Cài đặt CMD_log +```sh +clush -a "curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | sudo bash" +``` + +Hoặc +```sh +#!/bin/bash +echo "Install rsyslog" +yum -y install rsyslog || apt-get -y install rsyslog +systemctl enable rsyslog.service || chkconfig rsyslog on +systemctl start rsyslog.service || service rsyslog start + +echo "Config log History" +touch ~/.bash_profile +cp ~/{.bash_profile,.bash_profile.bk} +echo "export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug \"[\$(echo \$SSH_CLIENT | cut -d\" \" -f1)] # \$(history 1 | sed \"s/^[ ]*[0-9]\+[ ]*//\" )\"'" >> ~/.bash_profile +echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bash_profile +touch /var/log/cmdlog.log + +echo "Config rsyslog" +mv /etc/rsyslog.{conf,conf.bk} +cat >> /etc/rsyslog.conf << EOF +\$ModLoad imuxsock +\$ModLoad imklog +\$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat +\$FileOwner root +\$FileGroup adm +\$FileCreateMode 0640 +\$DirCreateMode 0755 +\$Umask 0022 +auth,authpriv.*-/var/log/auth.log +daemon.*-/var/log/daemon.log +kern.*-/var/log/kern.log +cron.*-/var/log/cron.log +user.*-/var/log/user.log +mail.*-/var/log/mail.log +local7.*-/var/log/boot.log +local6.*-/var/log/cmdlog.log +EOF + +echo "Restart rsyslog" +systemctl restart rsyslog.service || service rsyslog restart +source ~/.bash_profile +``` + +- Khởi động lại máy +```sh +init 6 +``` + +## Cài đặt Ceph + +Bổ sung repo cho ceph trên tất cả các node +```sh +clush -a "curl -Lso- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -" +clush -a "echo deb https://download.ceph.com/debian-octopus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list" +clush -a "sudo apt update -y" +``` + +Các bước ở dưới được thực hiện toàn toàn trên Node `ceph01` + +- Cài đặt `ceph-deploy` +```sh +sudo apt -y install ceph-deploy +``` + +- Kiểm tra cài đặt +```sh +ceph-deploy --version +``` + +- Cấu hình user ssh cho ceph-deploy +```sh +cat < ~/.ssh/config +Host ceph01 + Hostname ceph01 + User cephuser +Host ceph02 + Hostname ceph02 + User cephuser +Host ceph03 + Hostname ceph03 + User cephuser +EOF +``` + +- Tạo các thư mục `ceph-deploy` để thao tác cài đặt vận hành Cluster +```sh +mkdir ~/ceph-deploy ; cd ~/ceph-deploy +``` + +- Khởi tại file cấu hình cho cụm với node quản lý là `ceph01` +```sh +ceph-deploy new ceph01 ceph02 ceph03 +``` + +- Kiểm tra lại thông tin folder `ceph-deploy` +```sh +[cephuser@ceph01 ceph-deploy]$ ls -lah +total 12K +drwxr-xr-x 2 cephuser cephuser 75 Jan 31 16:31 . +dr-xr-xr-x. 18 cephuser cephuser 243 Jan 31 16:29 .. +-rw-r--r-- 1 cephuser cephuser2.9K Jan 31 16:31 ceph-deploy-ceph.log +-rw-r--r-- 1 cephuser cephuser 195 Jan 31 16:31 ceph.conf +-rw------- 1 cephuser cephuser 73 Jan 31 16:31 ceph.mon.keyring +[cephuser@ceph01 ceph-deploy]$ +``` +- `ceph.conf` : file config được tự động khởi tạo +- `ceph-deploy-ceph.log` : file log của toàn bộ thao tác đối với việc sử dụng lệnh `ceph-deploy` +- `ceph.mon.keyring` : Key monitoring được ceph sinh ra tự động để khởi tạo Cluster + +- Chúng ta sẽ bổ sung thêm vào file `ceph.conf` một vài thông tin cơ bản như sau: +```sh +cat << EOF >> ceph.conf +osd pool default size = 2 +osd pool default min size = 1 +osd pool default pg num = 128 +osd pool default pgp num = 128 + +osd crush chooseleaf type = 1 + +public network = 10.10.13.0/24 +cluster network = 10.10.14.0/24 +EOF +``` +- Bổ sung thêm định nghĩa + + `public network` : Đường trao đổi thông tin giữa các node Ceph và cũng là đường client kết nối vào + + `cluster network` : Đường đồng bộ dữ liệu +- Bổ sung thêm `default size replicate` +- Bổ sung thêm `default pg num` + + +- Cài đặt ceph trên toàn bộ các node ceph +```sh +ceph-deploy install --release octopus ceph01 ceph02 ceph03 +``` + +- Kiểm tra sau khi cài đặt trên cả 3 node +```sh +clush -a "ceph -v" +``` + +- Khởi tạo cluster với các node `mon` (Monitor-quản lý) dựa trên file `ceph.conf` +```sh +ceph-deploy mon create-initial +``` + +- Sau khi thực hiện lệnh phía trên sẽ sinh thêm ra 05 file : +`ceph.bootstrap-mds.keyring`, `ceph.bootstrap-mgr.keyring`, `ceph.bootstrap-osd.keyring`, `ceph.client.admin.keyring` và `ceph.bootstrap-rgw.keyring`. + +```sh +[cephuser@ceph01 ceph-deploy]# ls -lah +total 348K +drwxr-xr-x 2 cephuser cephuser 244 Feb 1 11:40 . +dr-xr-xr-x. 18 cephuser cephuser 243 Feb 1 11:29 .. +-rw-r--r-- 1 cephuser cephuser258K Feb 1 11:40 ceph-deploy-ceph.log +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-mds.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-mgr.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-osd.keyring +-rw------- 1 cephuser cephuser 113 Feb 1 11:40 ceph.bootstrap-rgw.keyring +-rw------- 1 cephuser cephuser 151 Feb 1 11:40 ceph.client.admin.keyring +-rw-r--r-- 1 cephuser cephuser 195 Feb 1 11:29 ceph.conf +-rw------- 1 cephuser cephuser 73 Feb 1 11:29 ceph.mon.keyring +``` + +- Để node `ceph01`, `ceph02`, `ceph03` có thể thao tác với cluster chúng ta cần gán cho node quyền admin bằng cách bổ sung key `admin.keying` cho node +```sh +ceph-deploy admin ceph01 ceph02 ceph03 +``` +> Kiểm tra bằng lệnh +```sh +[cephuser@ceph01 ceph-deploy]# sudo ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 1.09337s) + mgr: no daemons active + osd: 0 osds: 0 up, 0 in + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 0 B used, 0 B / 0 B avail + pgs: +``` + +## Khởi tạo MGR + +Ceph-mgr là thành phần cài đặt yêu cầu cần khởi tạo từ bản luminous, có thể cài đặt trên nhiều node hoạt động theo cơ chế `Active-Passive` + +- Cài đặt ceph-mgr trên ceph01 +```sh +ceph-deploy mgr create ceph01 ceph02 +``` + +- Kiểm tra cài đặt +```sh +[cephuser@ceph01 ceph-deploy]# sudo ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 53s) + mgr: ceph01(active, since 11s), standbys: ceph02 + osd: 0 osds: 0 up, 0 in + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 0 B used, 0 B / 0 B avail + pgs: +``` + +- Ceph-mgr hỗ trợ dashboard để quan sát trạng thái của cluster, Enable mgr dashboard trên host ceph01 +> Sẽ cài đặt `ceph-mgr-dashboard` trên cả `ceph01` và `ceph02` + +```sh +clush -w ceph[01,02] "sudo apt install ceph-mgr-dashboard -y" +sudo ceph mgr module enable dashboard +sudo ceph dashboard create-self-signed-cert +sudo ceph dashboard ac-user-create administrator +sudo ceph mgr services +``` + + +- Truy cập vào mgr dashboard với username và password vừa đặt ở phía trên để kiểm tra +```sh +https://:8443 +``` +![](../../images/dashboard-n.png) + + +## Khởi tạo OSD + +Tạo OSD thông qua ceph-deploy tại host `ceph01` + +- Thực hiện zapdisk +```sh +ceph-deploy disk zap ceph01 /dev/vdb +ceph-deploy disk zap ceph01 /dev/vdc +``` + +- Tạo OSD với ceph-deploy +```sh +ceph-deploy osd create --data /dev/vdb ceph01 +ceph-deploy osd create --data /dev/vdc ceph01 +``` + +- Thao tác với các ổ trên `ceph02` và `ceph03` tương tự. Vẫn thực hiện trên thư mục `ceph-deploy` trên `ceph01` +```sh +# ceph02 +ceph-deploy disk zap ceph02 /dev/vdb +ceph-deploy disk zap ceph02 /dev/vdc +ceph-deploy osd create --data /dev/vdb ceph02 +ceph-deploy osd create --data /dev/vdc ceph02 + +# ceph03 +ceph-deploy disk zap ceph03 /dev/vdb +ceph-deploy disk zap ceph03 /dev/vdc +ceph-deploy osd create --data /dev/vdb ceph03 +ceph-deploy osd create --data /dev/vdc ceph03 +``` + +- Kiểm tra osd vừa tạo bằng lệnh +```sh +ceph osd tree +``` +- Kết quả +```sh +[cephuser@ceph01 ceph-deploy]$ ceph osd tree +ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF +-1 0.16974 root default +-3 0.05658 host ceph01 + 0 hdd 0.02829 osd.0 up 1.00000 1.00000 + 1 hdd 0.02829 osd.1 up 1.00000 1.00000 +-5 0.05658 host ceph02 + 2 hdd 0.02829 osd.2 up 1.00000 1.00000 + 3 hdd 0.02829 osd.3 up 1.00000 1.00000 +-7 0.05658 host ceph03 + 4 hdd 0.02829 osd.4 up 1.00000 1.00000 + 5 hdd 0.02829 osd.5 up 1.00000 1.00000 +``` + +## Kiểm tra +Thực hiện trên ceph01 +- Kiểm tra trạng thái của CEPH sau khi cài +```sh +ceph -s +``` + +- Kết quả của lệnh trên như sau: +```sh +[cephuser@ceph01 ceph-deploy]$ ceph -s + cluster: + id: ba7c7fa1-4e55-450b-bc40-4cf122b28c27 + health: HEALTH_OK + + services: + mon: 3 daemons, quorum ceph01,ceph02,ceph03 (age 10m) + mgr: ceph01(active, since 7m), standbys: ceph02 + osd: 6 osds: 6 up (since 51s), 6 in (since 51s) + + data: + pools: 0 pools, 0 pgs + objects: 0 objects, 0 B + usage: 6.0 GiB used, 168 GiB / 174 GiB avail + pgs: +``` + +- Nếu có dòng `health HEALTH_OK` thì việc cài đặt đã thành công. From ca03e1a3d43d37779638cabbabc3ee4b40067ea4 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 10:21:48 +0900 Subject: [PATCH 35/44] Update ceph-octopus.md --- docs/setup/ceph-octopus.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/setup/ceph-octopus.md b/docs/setup/ceph-octopus.md index 334f96b..32e0182 100644 --- a/docs/setup/ceph-octopus.md +++ b/docs/setup/ceph-octopus.md @@ -306,6 +306,7 @@ ceph-deploy mgr create ceph01 ceph02 ```sh clush -w ceph[01,02] "sudo apt install ceph-mgr-dashboard -y" sudo ceph mgr module enable dashboard +# Nếu có lỗi "...No module named 'distutils.util' (pass --force to force enablement)", hãy cài "sudo apt-get install python-distutils-extra" sudo ceph dashboard create-self-signed-cert sudo ceph dashboard ac-user-create administrator sudo ceph mgr services From 0f99c7970192acfb85f354ce33f7ba1e363d6765 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 10:35:28 +0900 Subject: [PATCH 36/44] Update ceph-octopus.md --- docs/setup/ceph-octopus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-octopus.md b/docs/setup/ceph-octopus.md index 32e0182..ce89cf4 100644 --- a/docs/setup/ceph-octopus.md +++ b/docs/setup/ceph-octopus.md @@ -317,7 +317,7 @@ sudo ceph mgr services ```sh https://:8443 ``` -![](../../images/dashboard-n.png) +![](../../images/dashboard-o.png) ## Khởi tạo OSD From 9c62ccdf24158f27ba069f6d9d520906ccfef880 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 08:36:38 +0700 Subject: [PATCH 37/44] Add files via upload --- images/dashboard-o.jpg | Bin 0 -> 265859 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/dashboard-o.jpg diff --git a/images/dashboard-o.jpg b/images/dashboard-o.jpg new file mode 100644 index 0000000000000000000000000000000000000000..56adf57cbbb8c684ee3ff88ae668df03ff0f1199 GIT binary patch literal 265859 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

Rz9tp{q<(K^PS9{fq}ltcVm_Zmbd#J?`h8} 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 literal 0 HcmV?d00001 From 4630bab4aa9efbd64e0e94285550e086babc3b13 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 10:37:25 +0900 Subject: [PATCH 38/44] Update ceph-octopus.md --- docs/setup/ceph-octopus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-octopus.md b/docs/setup/ceph-octopus.md index ce89cf4..a86c650 100644 --- a/docs/setup/ceph-octopus.md +++ b/docs/setup/ceph-octopus.md @@ -317,7 +317,7 @@ sudo ceph mgr services ```sh https://:8443 ``` -![](../../images/dashboard-o.png) +![](../../images/dashboard-o.jpg) ## Khởi tạo OSD From 9b3523a61ac6b3f51ab9ac6a8a95b451c536a9e4 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 11:13:25 +0900 Subject: [PATCH 39/44] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ef3a9c2..632cefd 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ [Cài đặt Ceph bản Nautilus](docs/setup/ceph-nautilus.md) +[Cài đặt Ceph bản Octopus](docs/setup/ceph-octopus.md) + [Cài đặt Ceph-RadosGW HA bản Nautilus](docs/setup/ceph-radosgw.md) # Tài liệu tích hợp From 7cacd0942f51ecac16c505d30855c2f79c526d76 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 14:03:50 +0900 Subject: [PATCH 40/44] Update ceph-octopus.md --- docs/setup/ceph-octopus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/ceph-octopus.md b/docs/setup/ceph-octopus.md index a86c650..eb1bc6a 100644 --- a/docs/setup/ceph-octopus.md +++ b/docs/setup/ceph-octopus.md @@ -17,7 +17,7 @@ - `eth0`: dùng để ssh và tải gói cài đặt - `eth1`: dùng để các trao đổi thông tin giữa các node Ceph, cũng là đường Client kết nối vào - `eth2`: dùng để đồng bộ dữ liệu giữa các OSD -- Phiên bản cài đặt : Ceph Nautilus +- Phiên bản cài đặt : Ceph Octopus ## Mô hình From c4798c4d118a1f3940b3d58f86a458cb4ae927f3 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 14:13:45 +0900 Subject: [PATCH 41/44] Update enable-rgw.md --- docs/operating/enable-rgw.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/docs/operating/enable-rgw.md b/docs/operating/enable-rgw.md index bc2dadb..fae9005 100644 --- a/docs/operating/enable-rgw.md +++ b/docs/operating/enable-rgw.md @@ -3,34 +3,38 @@ Enabling the Object Gateway Management Frontend To use the Object Gateway management functionality of the dashboard, you will need to provide the login credentials of a user with the system flag enabled. If you do not have a user which shall be used for providing those credentials, you will also need to create one: -``` -radosgw-admin user create --uid= --display-name= --system + +```sh +sudo radosgw-admin user create --uid= --display-name= --system ``` Take note of the keys access_key and secret_key in the output of this command. The credentials of an existing user can also be obtained by using radosgw-admin: -``` -radosgw-admin user info --uid= + +```sh +sudo radosgw-admin user info --uid= ``` Finally, provide the credentials to the dashboard: -``` -ceph dashboard set-rgw-api-access-key -ceph dashboard set-rgw-api-secret-key + +```sh +sudo ceph dashboard set-rgw-api-access-key +sudo ceph dashboard set-rgw-api-secret-key ``` If you are using a self-signed certificate in your Object Gateway setup, then you should disable certificate verification in the dashboard to avoid refused connections, e.g. caused by certificates signed by unknown CA or not matching the host name: -``` -ceph dashboard set-rgw-api-ssl-verify False + +```sh +sudo ceph dashboard set-rgw-api-ssl-verify False ``` Disable/enable dashboard -``` +```sh sudo ceph mgr module disable dashboard sudo ceph mgr module enable dashboard ``` - Khởi tạo node rgw trên cả 3 node ceph -``` -cd /ceph-deploy + +```sh +cd ceph-deploy ceph-deploy install --rgw ceph01 ceph02 ceph03 ceph-deploy rgw create ceph01 ceph02 ceph03 ``` From 9721a171b36ed59eae00c49711e8ef4027b3e8f2 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 14:51:31 +0900 Subject: [PATCH 42/44] Update enable-rgw.md --- docs/operating/enable-rgw.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/operating/enable-rgw.md b/docs/operating/enable-rgw.md index fae9005..10dd741 100644 --- a/docs/operating/enable-rgw.md +++ b/docs/operating/enable-rgw.md @@ -1,31 +1,31 @@ -Enabling the Object Gateway Management Frontend +Bật Object Gateway Management(OGM). Để dùng được OGM chúng ta cần cung cấp thông tài khoản có cờ "system". -To use the Object Gateway management functionality of the dashboard, you will need to provide the login credentials of a user with the system flag enabled. - -If you do not have a user which shall be used for providing those credentials, you will also need to create one: +Cú pháp tạo user với cờ "system" ```sh sudo radosgw-admin user create --uid= --display-name= --system ``` -Take note of the keys access_key and secret_key in the output of this command. +Lưu lại access_key và secret_key. -The credentials of an existing user can also be obtained by using radosgw-admin: +Command sử dụng trong trường hợp không nhớ access_key và secret_key của use: ```sh sudo radosgw-admin user info --uid= ``` -Finally, provide the credentials to the dashboard: + +Command gán quyền truy xuất dashboard cho user: ```sh sudo ceph dashboard set-rgw-api-access-key sudo ceph dashboard set-rgw-api-secret-key ``` -If you are using a self-signed certificate in your Object Gateway setup, then you should disable certificate verification in the dashboard to avoid refused connections, e.g. caused by certificates signed by unknown CA or not matching the host name: + +Nếu sử dụng chứng chỉ tự ký, có thể sẽ gặp một số lỗi về chứng chỉ, vậy chúng ta sẽ tắt xác nhận ssl của rgw: ```sh sudo ceph dashboard set-rgw-api-ssl-verify False ``` -Disable/enable dashboard +Tắt/bật lại dashboard ```sh sudo ceph mgr module disable dashboard From 81ed95a3e5ebb36b988cb9fbabe324ca8cf59110 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 14:52:37 +0900 Subject: [PATCH 43/44] Update enable-rgw.md --- docs/operating/enable-rgw.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/operating/enable-rgw.md b/docs/operating/enable-rgw.md index 10dd741..0955d62 100644 --- a/docs/operating/enable-rgw.md +++ b/docs/operating/enable-rgw.md @@ -1,4 +1,6 @@ -Bật Object Gateway Management(OGM). Để dùng được OGM chúng ta cần cung cấp thông tài khoản có cờ "system". +## Bật Object Gateway Management(OGM). + +Để dùng được OGM chúng ta cần cung cấp thông tài khoản có cờ "system". Cú pháp tạo user với cờ "system" From 9f2926b38016c77ba83663eee79cec9341fbad45 Mon Sep 17 00:00:00 2001 From: luk3k0 Date: Wed, 1 Apr 2020 18:04:19 +0900 Subject: [PATCH 44/44] Update off-on-cluster.md --- docs/operating/off-on-cluster.md | 41 ++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/docs/operating/off-on-cluster.md b/docs/operating/off-on-cluster.md index fc6e183..1491a12 100644 --- a/docs/operating/off-on-cluster.md +++ b/docs/operating/off-on-cluster.md @@ -1,12 +1,13 @@ -Below steps are taken from: https://ceph.io/planet/how-to-do-a-ceph-cluster-maintenance-shutdown/ +## Hướng dẫn cách tắt/bật cluster + + +# Tắt (không thực hiện bước tiếp, nếu các bước trước không thoả mãn). +1. Dừng sử dụng RBD images/Rados Gateway trên tất cả clients. +2. Hãy chắc chắn cluster đang ở trạng thái "healthy". +3. Bật cờ noout, norecover, norebalance, nobackfill, nodown and pause. -# Shutting down follow the below order: -1. Stop the clients from using the RBD images/Rados Gateway on this cluster or any other clients. -2. The cluster must be in healthy state before proceeding. -> Check status on: https://ip-ceph01:8443 -3. Set the noout, norecover, norebalance, nobackfill, nodown and pause flags ```sh -##Run on ceph1(mng node) +##Chạy trên ceph01 (mng node) ceph osd set noout ceph osd set norecover @@ -15,21 +16,22 @@ ceph osd set nobackfill ceph osd set nodown ceph osd set pause ``` -> Status showing +> Status hiển thị ``` OSDMAP_FLAGS: pauserd,pausewr,nodown,noout,nobackfill,norebalance,norecover flag(s) set ``` -4. Shutdown osd nodes one by one -5. Shutdown monitor nodes one by one -6. Shutdown admin node +4. Shutdown lần lượt osd node. +5. Shutdown lần lượt monitor node. +6. Shutdown admin node. -# Bringing up follow the below order: -1. Power on the admin node -2. Power on the monitor nodes -3. Power on the osd nodes -4. Wait for all the nodes to come up , Verify all the services are up and the connectivity is fine between the nodes. -5. Unset all the noout,norecover,noreblance, nobackfill, nodown and pause flags. +# Bật + +1. Bật nguồn admin node. +2. Bật nguồn monitor node. +3. Bật nguồn osd node. +4. Đợi tới khi tất cả các node được bật, kiểm tra kết nối thành công giữa các node. +5. Tắt cờ noout,norecover,noreblance, nobackfill, nodown and pause. ```sh ##Run on ceph1(mng node) @@ -41,4 +43,7 @@ ceph osd unset nodown ceph osd unset pause ``` -6. Check and verify the cluster is in healthy state, Verify all the clients are able to access the cluster. +6. Kiểm tra trạng thái của cluster và kết nối lại từ các client. + +# Links tham khảo: +https://ceph.io/planet/how-to-do-a-ceph-cluster-maintenance-shutdown/