- Mô hình này sử dụng 3 server, trong đó:
- Host
mimic1cài đặtceph-deploy,ceph-mon,ceph-osd,ceph-mgr - Host
mimic2cài đặtceph-osd - Host
mimic3cài đặtceph-osd - Mô hình khá cơ bản cho việc áp dụng vào môi trường Product
-
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
- Sử dụng mô hình
- Phân hoạch IP cho các máy chủ trong mô hình trên
- 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
EOFLưu ý network setup trong /etc/hosts chính là đường
eth1dù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 6Các server Mimic2 và Mimic3 thực hiện tương tự
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 -yCá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 --versionKết quả như sau là đã cài đặt thành công ceph-deploy
2.0.1- Tạo ssh key
ssh-keygenBấ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ệnhceph-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.confmộ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àocluster 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 fileceph.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.keyringvàceph.bootstrap-rgw.keyring. Quan sát bằng lệnhll -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
mimic1có thể thao tác với cluster chúng ta cần gán cho nodemimic1với quyền admin bằng cách bổ sung cho node nàyadmin.keying
ceph-deploy admin mimic1Kiể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: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>:8443Tạo OSD thông qua ceph-deploy tại host mimic1
- Trên mimic1, dùng ceph-deploy để partition ổ cứng OSD, thay
mimic1bằ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
lsblkKế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-0Thự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_OKthì việc cài đặt đã ok.


