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
Đăng nhập vào nút máy khách eCph.
Thêm một 'cephuser' mới và đặt mật khẩu mới cho người dùng.
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'.
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.
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.
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'.
Đây là cấu hình của tôi từ hướng dẫn Ceph I.
Lưu tệp hosts và thoát khỏi trình chỉnh sửa.
Đăng nhập vào nút ceph-admin.
Chỉnh sửa tệp cấu hình ssh bằng vim.
Thêm cấu hình nút máy khách mới vào cuối tệp.
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.
Và thêm tên máy chủ và địa chỉ IP của 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.
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.
Đă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.
Đ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'.
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.
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ị.
Ceph đã được cài đặt trên nút máy khách.
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 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.
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.
Tiếp theo, kích hoạt mô-đun hạt nhân rbd.
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ạ.
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.
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.
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.
Sử dụng Ceph làm Block Device trên CentOS 7 đã thành công.
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.
Dán tập lệnh bên dưới:
Lưu tệp và thoát khỏi vim, sau đó thực thi tệp bằng chmod.
Tiếp theo, hãy đến thư mục systemd và tạo tệp dịch vụ.
Dán cấu hình dịch vụ bên dưới:
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.
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'.
Đâ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
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]
Mã:
useradd -d /home/cephuser -m cephuser
passwd cephuser
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
Mã:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
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
Mã:
vim /etc/hosts
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
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
Mã:
vim ~/.ssh/config
Mã:
Máy chủ máy khách
Tên máy chủ máy khách
Người dùng cephuser
Tiếp theo, chỉnh sửa tệp /etc/hosts trên nút ceph-admin.
Mã:
sudo vim /etc/hosts
Mã:
10.0.15.15 máy khách
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
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
Mã:
cd cluster/
Mã:
ceph-deploy install client
ceph-deploy admin client
Mã:
ssh client
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
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
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
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
Mã:
sudo modprobe rbd
sudo rbd feature disable disk01 exclusive-lock object-map fast-diff deep-flatten
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
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
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
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
Mã:
chmod +x rbd-mount
Mã:
cd /etc/systemd/system/
vim rbd-mount.service
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
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
Tham khảo
- http://docs.ceph.com/docs/jewel/rbd/rbd/http://docs.ceph.com/docs/jewel/rbd/rbd/?utm_source=diendancongnghe.com
- http://blog.programster.org/ceph-deploy-and-mount-a-block-device/http://blog.programster.org/ceph-deploy-and-mount-a-block-device/?utm_source=diendancongnghe.com
- http://bryanapperson.com/blog/mounting-rbd-at-boot-under-centos-7/