Sử dụng Ceph như một thiết bị khối trên CentOS 7

theanh

Administrator
Nhân viên
Ceph là một nền tảng lưu trữ mã nguồn mở, cung cấp hiệu suất cao, độ tin cậy và khả năng mở rộng. Đây là một hệ thống lưu trữ phân tán miễn phí có thể được thiết lập mà không có một điểm lỗi nào. Ceph cung cấp giao diện cho lưu trữ cấp đối tượng, khối và tệp.

Đây là phần thứ hai trong loạt bài hướng dẫn Ceph của chúng tôi - nhấp vào đây để xem hướng dẫn Ceph I (thiết lập Ceph Cluster trên CentOS). Trong phần thứ hai, tôi sẽ hướng dẫn bạn từng bước cài đặt và cấu hình một máy khách Ceph Block Device để sử dụng Ceph làm hệ thống tệp trên CentOS 7.

Điều kiện tiên quyết
  • Ceph cluster - Hướng dẫn Ceph I
  • Máy chủ máy khách - CentOS 7 - tên máy chủ và IPMáy khách 10.0.15.15
[*] Quyền root

Bước 1 - Cấu hình máy khách Ceph Node​

Trong phần này, chúng ta sẽ cấu hình máy chủ CentOS 7 của mình thành một máy khách Ceph. Chúng ta sẽ cấu hình máy khách Ceph thành một nút Ceph khác (mon-osd).

Đăng nhập vào nút máy khách eCph.
Mã:
ssh root@[I]10.0.15.15[/I]
Thêm một 'cephuser' mới và đặt mật khẩu mới cho người dùng.
Mã:
useradd -d /home/cephuser -m cephuser
passwd cephuser
Bật sudo không cần mật khẩu cho 'cephuser' bằng cách thêm một cấu hình mới vào thư mục 'sudoers.d'.
Mã:
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
Sau khi bật sudo password-less cho cephuser, chúng ta cần tắt SELinux trên nút máy khách.
Mã:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
Tiếp theo, cài đặt NTP và đồng bộ thời gian hệ thống với lệnh ntpdate. Sau đó khởi động dịch vụ NTP.
Mã:
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
Thêm cấu hình máy chủ cho tất cả các nút ceph-cluster vào tệp '/etc/hosts'.
Mã:
vim /etc/hosts
Đây là cấu hình của tôi từ hướng dẫn Ceph I.
Mã:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
Lưu tệp hosts và thoát khỏi trình chỉnh sửa.


Bước 2 - Cấu hình Ceph Admin-node​

Trong bước đầu tiên, chúng tôi đã chuẩn bị nút máy khách Ceph để cài đặt ceph. Nhưng chúng tôi vẫn cần cấu hình nút ceph-admin để có thể quản lý cài đặt Ceph trên nút máy khách. Bây giờ chúng ta sẽ cài đặt Ceph trên nút máy khách từ nút 'ceph-admin'.

Đăng nhập vào nút ceph-admin.
Mã:
ssh root@ceph-admin
su - cephuser
Chỉnh sửa tệp cấu hình ssh bằng vim.
Mã:
vim ~/.ssh/config
Thêm cấu hình nút máy khách mới vào cuối tệp.
Mã:
Máy chủ máy khách
 Tên máy chủ máy khách
 Người dùng cephuser
Lưu tệp cấu hình và thoát khỏi vim.

Tiếp theo, chỉnh sửa tệp /etc/hosts trên nút ceph-admin.
Mã:
sudo vim /etc/hosts
Và thêm tên máy chủ và địa chỉ IP của máy khách.
Mã:
10.0.15.15 máy khách
Lưu /etc/hosts và thoát khỏi trình chỉnh sửa.

Bây giờ chúng ta có thể thêm khóa SSH theceph-admin vào nút máy khách.
Mã:
ssh-keyscan client >> ~/.ssh/known_hosts
ssh-copy-id client
Nhập mật khẩu "cephuser" của bạn khi được yêu cầu.

Thử kết nối với máy chủ nút máy khách bằng lệnh bên dưới để kiểm tra kết nối.
Mã:
ssh client



Bước 3 - Cài đặt Ceph trên Nút máy khách​

Trong bước này, chúng ta sẽ cài đặt Ceph trên nút máy khách (nút hoạt động như nút máy khách) từ nút ceph-admin.

Đăng nhập vào nút ceph-admin với tư cách là root bằng ssh và trở thành "cephuser" với su.
Mã:
ssh root@ceph-admin
su - cephuser
Đi đến thư mục cụm Ceph, trong hướng dẫn Ceph đầu tiên của chúng tôi, chúng tôi đã sử dụng thư mục 'cluster'.
Mã:
cd cluster/
Cài đặt Ceph trên nút máy khách bằng ceph-deploy rồi đẩy cấu hình và khóa quản trị đến nút máy khách.
Mã:
ceph-deploy install client
ceph-deploy admin client
Quá trình cài đặt Ceph sẽ mất một khoảng thời gian (tùy thuộc vào máy chủ và tốc độ mạng). Khi tác vụ hoàn tất, hãy kết nối với nút máy khách và thay đổi quyền của khóa quản trị.
Mã:
ssh client
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Ceph đã được cài đặt trên nút máy khách.




Bước 4 - Cấu hình và gắn Ceph dưới dạng Block Device​

Ceph cho phép người dùng sử dụng cụm Ceph như một thiết bị khối được cung cấp mỏng. Chúng ta có thể gắn bộ lưu trữ Ceph như một ổ cứng thông thường trên hệ thống của mình. Ceph Block Storage hoặc Ceph RADOS Block Storage (RBD) lưu trữ hình ảnh thiết bị khối dưới dạng một đối tượng, nó tự động phân chia và sao chép dữ liệu của chúng ta trên cụm Ceph. Ceph RBD đã được tích hợp với KVM, vì vậy chúng ta cũng có thể sử dụng nó làm bộ lưu trữ khối trên nhiều nền tảng ảo hóa khác nhau như OpenStack, Apache CLoudstack, Proxmox VE, v.v.

Trước khi tạo một thiết bị khối mới trên nút máy khách, chúng ta phải kiểm tra trạng thái cụm. Đăng nhập vào nút giám sát Ceph và kiểm tra trạng thái cụm.
Mã:
ssh mon1
sudo ceph -s
Đảm bảo tình trạng cụm là 'HEALTH_OK' và pgmap là 'active & clean'.



Trong bước này, chúng ta sẽ sử dụng Ceph làm thiết bị khối hoặc lưu trữ khối trên máy chủ khách hàng với CentOS 7 là hệ điều hành nút khách hàng. Từ nút ceph-admin, kết nối với nút khách hàng bằng ssh. Không cần mật khẩu vì chúng ta đã định cấu hình đăng nhập không cần mật khẩu cho nút đó trong các chương đầu tiên.
Mã:
ssh client
Ceph cung cấp lệnh rbd để quản lý hình ảnh thiết bị khối rados. Chúng ta có thể tạo một hình ảnh mới, thay đổi kích thước, tạo ảnh chụp nhanh và xuất các thiết bị khối của mình bằng lệnh therbd.

Tạo một hình ảnh rbd mới có kích thước 40GB, sau đó kiểm tra xem 'disk01' có sẵn trong danh sách rbd không.
Mã:
rbd create disk01 --size 40960
rbd ls -l
Tiếp theo, kích hoạt mô-đun hạt nhân rbd.
Mã:
sudo modprobe rbd
sudo rbd feature disable disk01 exclusive-lock object-map fast-diff deep-flatten
Bây giờ, ánh xạ hình ảnh disk01 tới một thiết bị khối thông qua mô-đun hạt nhân rbd và sau đó đảm bảo rằng disk01 có trong danh sách các thiết bị được ánh xạ.
Mã:
sudo rbd map disk01
rbd showmapped


Chúng ta có thể thấy rằng ảnh disk01 đã được ánh xạ thành thiết bị '/dev/rbd0'. Trước khi sử dụng nó để lưu trữ dữ liệu, chúng ta phải định dạng ảnh disk01 đó bằng lệnh themkfs. Tôi sẽ sử dụng hệ thống tệp XFS.
Mã:
sudo mkfs.xfs /dev/rbd0
Gắn '/dev/rbd0' vào thư mục mnt. Tôi sẽ sử dụng thư mục con 'mydisk' cho mục đích này.
Mã:
sudo mkdir -p /mnt/mydisk
sudo mount /dev/rbd0 /mnt/mydisk


Thiết bị Ceph RBD hoặc RADOS Block đã được định cấu hình và gắn vào hệ thống. Kiểm tra xem thiết bị đã được gắn đúng cách bằng lệnh df chưa.
Mã:
df -hT
Sử dụng Ceph làm Block Device trên CentOS 7 đã thành công.




Bước 5 - Thiết lập RBD tại thời điểm khởi động​

Sử dụng Ceph làm Block Device trên nút CentOS 7 Client đã thành công. Bây giờ chúng ta sẽ cấu hình để tự động gắn Ceph Block Device vào hệ thống. vào thời điểm khởi động Chúng ta cần tạo một tệp dịch vụ cho 'RBD Auto Mount'.

Tạo một tệp mới trong thư mục /usr/local/bin để gắn kết và hủy gắn kết RBD disk01.
Mã:
cd /usr/local/bin/
vim rbd-mount
Dán tập lệnh bên dưới:
Mã:
#!/bin/bash
Mã:
# Tác giả tập lệnh: http://bryanapperson.com/
# Thay đổi bằng tên nhóm của bạn
export poolname=rbd
 
# Thay đổi bằng tên ảnh đĩa của bạn
export rbdimage=disk01
 
# Thư mục gắn kết
export mountpoint=/mnt/mydisk
 
# Gắn kết/hủy gắn kết ảnh và nhóm được truyền từ dịch vụ hệ thống dưới dạng đối số
# Xác định xem chúng ta đang gắn kết hay hủy gắn kết
if [ "$1" == "m" ]; sau đó
 modprobe rbd
 tính năng rbd vô hiệu hóa $rbdimage exclusive-lock object-map fast-diff deep-flatten
 rbd map $rbdimage --id admin --keyring /etc/ceph/ceph.client.admin.keyring
 mkdir -p $mountpoint
 mount /dev/rbd/$poolname/$rbdimage $mountpoint
fi
nếu [ "$1" == "u" ]; sau đó
 umount $mountpoint
 rbd unmap /dev/rbd/$poolname/$rbdimage
fi
Lưu tệp và thoát khỏi vim, sau đó thực thi tệp bằng chmod.
Mã:
chmod +x rbd-mount
Tiếp theo, hãy đến thư mục systemd và tạo tệp dịch vụ.
Mã:
cd /etc/systemd/system/
vim rbd-mount.service
Dán cấu hình dịch vụ bên dưới:
Mã:
[Unit]
Mô tả=Ánh xạ thiết bị khối RADOS cho $rbdimage trong nhóm $poolname"
Conflicts=shutdown.target
Wants=network-online.target
After=NetworkManager-wait-online.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/rbd-mount m
ExecStop=/usr/local/bin/rbd-mount u
[Install]
WantedBy=multi-user.target
Lưu tệp và thoát khỏi vim.

Tải lại các tệp systemd và bật dịch vụ rbd-mount để bắt đầu khi khởi động.
Mã:
systemctl daemon-reload
systemctl enable rbd-mount.service
Nếu bạn khởi động lại nút máy khách ngay bây giờ, rbd 'disk01' sẽ tự động được gắn vào thư mục '/mnt/mydisk'.


Tham khảo​

 
Back
Bên trên