Từ Code đến System

Ceph

[Ceph] Phần 5 – Cài đặt Ceph Luminous All In One trên CentOS 7

Ceph là dự án mã nguồn mở, cung cấp giải pháp lưu trữ dữ liệu. Ceph cung cấp giải pháp lưu trữ phân tán mạnh mẽ, đáp ứng các yêu cầu về khả năng mở rộng, hiệu năng, khả năng chịu lỗi cao. Xuất phát từ mục tiêu ban đầu, Ceph được thiết kết với khả năng mở rộng không giới hạn, hỗ trợ lưu trữ tới mức exabyte, cùng với khả năng tương thích cao với các phần cứng có sẵn. Và từ đó, Ceph trở nên nổi bật trong ngành công nghiệp lưu trữ đang phát triển và mở rộng.

Chuẩn bị

Chuẩn bị máy ảo với hệ điều hành CentOS 7 với cấu hình:

  • CPU: 2 Core
  • RAM: 4 GB
  • Disk: 4 ổ, 1 OS, 3 OSD
    • OS (sda): 100 GB
    • Data (sdb): 50 GB
    • Data (sdc): 50 GB
    • Data (sdd): 50 GB
  • Network: 2 interface
    • Dải Access Ceph: 10.0.3.0/24 (ens34: 10.0.3.100)
    • Dải Replicate Data: 192.168.2.0/24 (ens33: 192.168.2.100)

Cài đặt

Phần 1. Chuẩn bị

Đặt hostname

hostnamectl set-hostname cephaio

Cấu hình card mạng

echo "Setup IP ens33"
nmcli c modify ens33 ipv4.addresses 192.168.2.100/24
nmcli c modify ens33 ipv4.gateway 192.168.2.2
nmcli c modify ens33 ipv4.dns 8.8.8.8
nmcli c modify ens33 ipv4.method manual
nmcli con mod ens33 connection.autoconnect yes

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

Tắt Firewall, SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld

Tạo Ceph User

useradd -d /home/cephuser -m cephuser
passwd cephuser

Lưu ý:

  • User này sẽ được sử dụng bởi ceph-deploy. Tức, ceph-deploy sẽ sử dụng user này để triển khai các cấu hình của Ceph
  • Nếu bỏ qua user này ceph-deploy sẽ vẫn chạy, nó sẽ tự động sử dụng biến user môi trường

Cấp quyền root cho user vừa tạo

echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

Cấu hình Host File

echo '
192.168.2.100 cephaio' >> /etc/hosts

Cấu hình đồng bộ thời gian

timedatectl set-timezone Asia/Ho_Chi_Minh

yum -y install chrony
sed -i 's/server 0.centos.pool.ntp.org iburst/ \
server 1.vn.pool.ntp.org iburst \
server 0.asia.pool.ntp.org iburst \
server 3.asia.pool.ntp.org iburst/g' /etc/chrony.conf
sed -i 's/server 1.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf
sed -i 's/server 2.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf
sed -i 's/server 3.centos.pool.ntp.org iburst/#/g' /etc/chrony.conf

systemctl enable chronyd.service
systemctl restart chronyd.service
chronyc sources

Khởi động lại

init 6

Lưu ý: Tạo bước này các bạn nên snapshot lại VM

Phần 2: Cấu hình SSH Server

Lưu ý: Truy cập cephaio với quyền root

Tạo SSH-Key

echo -e "\n" | ssh-keygen -t rsa -N ""

Cấu hình SSH File

echo '
Host cephaio
        Hostname cephaio
        User cephuser' > ~/.ssh/config

Thay đổi quyền trên File

chmod 644 ~/.ssh/config

Thiết lập KeyPair

ssh-keyscan cephaio >> ~/.ssh/known_hosts
ssh-copy-id cephaio

Lưu ý: Thao tác yều cầu nhập password

Phần 3. Thiết lập Ceph Cluster

Cấu hình Ceph repo

echo '
[Ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-luminous/el7/$basearch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

[Ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-luminous/el7/noarch
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1

[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-luminous/el7/SRPMS
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
priority=1' > /etc/yum.repos.d/ceph.repo

yum update -y

Cài đặt ceph-deploy

yum install ceph-deploy -y
yum update ceph-deploy -y

Tạo cluster directory

mkdir cluster
cd cluster/

Tạo mới cấu hình ceph, thiết lập node mon

ceph-deploy new cephaio

Cấu hình ceph.conf

echo "public network = 192.168.2.0/24" >> ~/cluster/ceph.conf
echo "cluster network = 10.0.3.0/24" >> ~/cluster/ceph.conf

Cài đặt Ceph bản Luminous

ceph-deploy install --release luminous cephaio

Khởi tạo tiến trình mon

ceph-deploy mon create-initial

Liệt kê OSD

ceph-deploy disk list cephaio

Xóa partition tables trên tất cả node với zap option

ceph-deploy disk zap cephaio /dev/sdb
ceph-deploy disk zap cephaio /dev/sdc
ceph-deploy disk zap cephaio /dev/sdd

Tạo mới OSD

ceph-deploy osd create cephaio --data /dev/sdb
ceph-deploy osd create cephaio --data /dev/sdc
ceph-deploy osd create cephaio --data /dev/sdd

Kiểm tra tại OSD node

[root@cephaio cluster]# lsblk
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0                                                                                                     2:0    1    4K  0 disk 
sda                                                                                                     8:0    0   50G  0 disk 
├─sda1                                                                                                  8:1    0  500M  0 part /boot
└─sda2                                                                                                  8:2    0 49.5G  0 part 
  ├─centos-root                                                                                       253:0    0 45.6G  0 lvm  /
  └─centos-swap                                                                                       253:1    0  3.9G  0 lvm  [SWAP]
sdb                                                                                                     8:16   0   20G  0 disk 
└─ceph--0589e5fc--c1e8--4b7c--b373--eee113f49a4e-osd--block--530493fe--a8d3--4f92--bd20--1a0723e913ab 253:2    0   20G  0 lvm  
sdc                                                                                                     8:32   0   20G  0 disk 
└─ceph--2444521c--2a9c--4bb6--90e8--f124428859b3-osd--block--2c088db4--5529--43b9--928c--b19c810cac15 253:3    0   20G  0 lvm  
sdd                                                                                                     8:48   0   20G  0 disk 
└─ceph--586dc0b9--fe6f--46ab--93bb--18293b57b2a3-osd--block--f8f227f0--f488--41f9--837e--bd6c562d65af 253:4    0   20G  0 lvm  
sr0                                                                                                    11:0    1  636M  0 rom  

Khởi tạo quyền admin ceph cho node cephaio (Để node có quyền quản trị Ceph)

ceph-deploy admin cephaio

Thiết lập quyền truy cập file

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Khởi tạo tiến trình ceph mgr (Không khởi tạo có thể gây lỗi ceph)

ceph-deploy mgr create cephaio:ceph-mgr-1

Phần 4. Kiểm tra trạng thái Ceph

Kiểm tra cluster health

[root@cephaio cluster]# sudo ceph health
HEALTH_OK

Kiểm tra cluster status

[root@cephaio cluster]# sudo ceph -s
  cluster:
    id:     a0a1f71e-3acd-4035-904d-be26171e1e96
    health: HEALTH_OK
 
  services:
    mon: 1 daemons, quorum cephaio
    mgr: ceph-mgr-1(active)
    osd: 3 osds: 3 up, 3 in
 
  data:
    pools:   0 pools, 0 pgs
    objects: 0 objects, 0 bytes
    usage:   3077 MB used, 58350 MB / 61428 MB avail
    pgs:     

Phần 5: Chỉnh sửa Crush map

Khi cài đặt Ceph All In One, cần phải bổ sung cấu hình sau để lab các tính năng khác

Truy cập Cluster config, lấy crush map hiện tại

cd cluster/
ceph osd getcrushmap -o map.bin
crushtool -d map.bin -o map.txt

Chỉnh sửa crush map

sed -i 's/step chooseleaf firstn 0 type host/step chooseleaf firstn 0 type osd/g' ~/cluster/map.txt

Update Crush map

crushtool -c map.txt -o map-new.bin
ceph osd setcrushmap -i map-new.bin

Phần 6: Khởi tạo Ceph Dashboard

Liệt kê các module hiện có

[root@cephaio cluster]# ceph mgr dump
{
    "epoch": 29,
    "active_gid": 4118,
    "active_name": "ceph-mgr-1",
    "active_addr": "192.168.2.100:6806/12549",
    "available": true,
    "standbys": [],
    "modules": [
        "balancer",
        "restful",
        "status"
    ],
    "available_modules": [
        "balancer",
        "dashboard", # Enable dashboard
        "influx",
        "localpool",
        "prometheus",
        "restful",
        "selftest",
        "status",
        "zabbix"
    ],
    "services": {}
}

Kích hoạt module dashboard

ceph mgr module enable dashboard

Kiểm tra lại

[root@cephaio cluster]# ceph mgr dump
{
    "epoch": 33,
    "active_gid": 4123,
    "active_name": "ceph-mgr-1",
    "active_addr": "192.168.2.100:6806/12549",
    "available": true,
    "standbys": [],
    "modules": [
        "balancer",
        "dashboard",
        "restful",
        "status"
    ],
    "available_modules": [
        "balancer",
        "dashboard",
        "influx",
        "localpool",
        "prometheus",
        "restful",
        "selftest",
        "status",
        "zabbix"
    ],
    "services": {
        "dashboard": "http://cephaio:7000/"
    }
}

Truy cập giao diện,

http://<ip>:7000/
Giao diện Ceph Dashboard

Nguồn

https://github.com/lacoski/ceph-note/blob/master/docs/ceph/ceph-install-luminous-aio.md

Leave a Reply