Skip to content

Latest commit

 

History

History
455 lines (372 loc) · 11.2 KB

ceph-mimic.md

File metadata and controls

455 lines (372 loc) · 11.2 KB

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 mimic1 cài đặt ceph-deploy, ceph-mon, ceph-osd, ceph-mgr
  • Host mimic2 cài đặt ceph-osd
  • Host mimic3 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)

  • OS

  • CentOS7 - 64 bit

  • 05: HDD, trong đó:

  • sda: sử dụng để cài OS

  • sdb,sdc,sdd: 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 Mimic

Mô hình

  • Sử dụng mô hình

IP Planning

  • Phân hoạch IP cho các máy chủ trong mô hình trên

Các bước chuẩn bị trên từng Server

  • Cài đặt NTPD
yum install chrony -y 
  • Enable NTPD
systemctl enable --now chronyd 
  • Kiểm tra chronyd hoạt động
chronyc sources -v 
  • Set hwclock
hwclock --systohc
  • Đặt hostname
hostnamectl set-hostname mimic1
  • Đặt IP cho các node
systemctl disable NetworkManager
systemctl enable network
systemctl start network

echo "Setup IP eth0"
nmcli c modify eth0 ipv4.addresses 10.10.10.61/24
nmcli c modify eth0 ipv4.gateway 10.10.10.1
nmcli c modify eth0 ipv4.dns 8.8.8.8
nmcli c modify eth0 ipv4.method manual
nmcli con mod eth0 connection.autoconnect yes

echo "Setup IP eth1"
nmcli c modify eth1 ipv4.addresses 10.10.13.61/24
nmcli c modify eth1 ipv4.method manual
nmcli con mod eth1 connection.autoconnect yes

echo "Setup IP eth2"
nmcli c modify eth2 ipv4.addresses 10.10.14.61/24
nmcli c modify eth2 ipv4.method manual
nmcli con mod eth2 connection.autoconnect yes
  • Cài đặt epel-relese và update OS
yum install epel-release -y
yum update -y
  • Cài đặt CMD_log
curl -Lso- https://raw.githubusercontent.com/nhanhoadocs/scripts/master/Utilities/cmdlog.sh | bash
  • Bổ sung user cephuser
sudo useradd -d /home/cephuser -m cephuser
sudo passwd cephuser
  • Cấp quyền sudo cho cephuser
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sudo chmod 0440 /etc/sudoers.d/cephuser
  • Vô hiệu hóa Selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  • Mở port cho Ceph trên Firewalld
#ceph-admin
systemctl start firewalld
systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload

# mon
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload

# osd
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload
  • Hoặc có thể disable firewall
sudo systemctl disable firewalld
sudo systemctl stop firewalld
  • Bổ sung file hosts
cat << EOF >> /etc/hosts
10.10.13.61 mimic1
10.10.13.62 mimic2
10.10.13.63 mimic3
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

  • Kiểm tra kết nối
ping -c 10 mimic1
  • Khởi động lại máy
init 6

Các server Mimic2 và Mimic3 thực hiện tương tự

Cài đặt Ceph

Bổ sung repo cho ceph trên tất cả các node

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

yum update -y

Các bước ở dưới được thực hiện toàn toàn trên Node ceph01

  • Cài đặt python-setuptools
yum install python-setuptools -y
  • Cài đặt ceph-deploy
yum install ceph-deploy -y
  • Kiểm tra cài đặt
ceph-deploy --version

Kết quả như sau là đã cài đặt thành công ceph-deploy

2.0.1
  • Tạo ssh key
ssh-keygen

Bấm ENTER khi có requirement

  • Cấu hình user ssh cho ceph-deploy
cat <<EOF> /root/.ssh/config
Host mimic1
    Hostname mimic1
    User cephuser
Host mimic2
    Hostname mimic2
    User cephuser
Host mimic3
    Hostname mimic3
    User cephuser
EOF
  • Copy ssh key sang các node khác
ssh-copy-id mimic1
ssh-copy-id mimic2
ssh-copy-id mimic3
  • Tạo các thư mục ceph-deploy để thao tác cài đặt vận hành Cluster
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à mimic1
ceph-deploy new mimic1 mimic2 mimic3
  • Kiểm tra lại thông tin folder ceph-deploy
[root@mimic1 ceph-deploy]# ls -lah
total 12K
drwxr-xr-x   2 root root   75 Jan 31 16:31 .
dr-xr-xr-x. 18 root root  243 Jan 31 16:29 ..
-rw-r--r--   1 root root 2.9K Jan 31 16:31 ceph-deploy-ceph.log
-rw-r--r--   1 root root  195 Jan 31 16:31 ceph.conf
-rw-------   1 root root   73 Jan 31 16:31 ceph.mon.keyring
[root@mimic1 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:

cat << EOF >> /ceph-deploy/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

ceph-deploy install --release mimic mimic1 mimic2 mimic3 
  • Kiểm tra sau khi cài đặt
ceph -v 

Kết quả như sau là đã cài đặt thành công ceph trên node

ceph version 13.2.4 (b10be4d44915a4d78a8e06aa31919e74927b142e) mimic (stable)
  • Khởi tạo cluster với các node mon (Monitor-quản lý) dựa trên file ceph.conf
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.keyringceph.bootstrap-rgw.keyring. Quan sát bằng lệnh ll -alh
[root@mimic1 ceph-deploy]# ls -lah
total 348K
drwxr-xr-x   2 root root  244 Feb  1 11:40 .
dr-xr-xr-x. 18 root root  243 Feb  1 11:29 ..
-rw-r--r--   1 root root 258K Feb  1 11:40 ceph-deploy-ceph.log
-rw-------   1 root root  113 Feb  1 11:40 ceph.bootstrap-mds.keyring
-rw-------   1 root root  113 Feb  1 11:40 ceph.bootstrap-mgr.keyring
-rw-------   1 root root  113 Feb  1 11:40 ceph.bootstrap-osd.keyring
-rw-------   1 root root  113 Feb  1 11:40 ceph.bootstrap-rgw.keyring
-rw-------   1 root root  151 Feb  1 11:40 ceph.client.admin.keyring
-rw-r--r--   1 root root  195 Feb  1 11:29 ceph.conf
-rw-------   1 root root   73 Feb  1 11:29 ceph.mon.keyring
  • Để node mimic1 có thể thao tác với cluster chúng ta cần gán cho node mimic1 với quyền admin bằng cách bổ sung cho node này admin.keying
ceph-deploy admin mimic1

Kiểm tra bằng lệnh

[root@mimic1 ceph-deploy]# ceph -s
cluster:
    id:     691a39d3-0789-49db-bf54-c0e2a774901a
    health: HEALTH_OK

services:
    mon: 1 daemons, quorum mimic1
    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 mimic1
ceph-deploy mgr create mimic1
  • Kiểm tra cài đặt
[root@mimic1 ceph-deploy]# ceph -s
cluster:
    id:     691a39d3-0789-49db-bf54-c0e2a774901a
    health: HEALTH_OK

services:
    mon: 1 daemons, quorum mimic1
    mgr: mimic1(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:
  • Ceph-mgr hỗ trợ dashboard để quan sát trạng thái của cluster, Enable mgr dashboard trên host mimic1
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert
ceph dashboard set-login-credentials <username> <password>
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
https://<ip-mimic1>:8443

Khởi tạo OSD

Tạo OSD thông qua ceph-deploy tại host mimic1

  • Trên mimic1, dùng ceph-deploy để partition ổ cứng OSD, thay mimic1 bằng hostname của host chứa OSD
ceph-deploy disk zap mimic1 /dev/vdb
  • Tạo OSD với ceph-deploy
ceph-deploy osd create --data /dev/sdb mimic1
  • Kiểm tra osd vừa tạo bằng lệnh
ceph osd tree
  • Kiểm tra ID của OSD bằng lệnh
lsblk

Kết quả:

sdb                                                                                                     8:112  0   39G  0 disk  
└─ceph--42804049--4734--4a87--b776--bfad5d382114-osd--data--e6346e12--c312--4ccf--9b5f--0efeb61d0144  253:5    0   39G  0 lvm   /var/lib/ceph/osd/ceph-0

Kiểm tra

Thực hiện trên mimic1

  • Kiểm tra trạng thái của CEPH sau khi cài
ceph -s
  • Kết quả của lệnh trên như sau:
ceph-deploy@mimic1:~/my-cluster$ ceph -s
cluster:
    id:     691a39d3-0789-49db-bf54-c0e2a774901a
    health: HEALTH_OK

services:
    mon: 1 daemons, quorum mimic1
    mgr: mimic1(active)
    osd: 3 osds: 3 up, 3 in

data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 bytes
    usage:   3180 MB used, 116 GB / 119 GB avail
    pgs:     
  • Nếu có dòng health HEALTH_OK thì việc cài đặt đã ok.