Cách gắn CephFS 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í cung cấp giao diện cho lưu trữ cấp đối tượng, khối và tệp mà không có một điểm lỗi nào.

Đây là phần thứ ba của loạt bài hướng dẫn về Ceph. Trong phần đầu tiên, tôi đã chỉ cho bạn cách xây dựng 'Ceph Cluster' với nhiều nút trên CentOS7. Phần thứ hai là hướng dẫn chỉ cách sử dụng Ceph như một Thiết bị khối trên CentOS 7. Trong phần thứ ba này, tôi sẽ chỉ cho bạn cách gắn Ceph như một Hệ thống tệp trên CentOS 7 dưới dạng Máy khách.



Điều kiện tiên quyết
  • Ceph Cluster - 1 nút Ceph-admin, 1 nút Moinitor (ceph-mon), 3 nút Ceph-osd (xem phần 1).
  • Client2 - máy chủ CentOS 7 (xem phần 2).
  • Quyền root

Bước 1 - Cấu hình Client2 Node​

Trong bước đầu tiên này, chúng ta sẽ thực hiện cài đặt cơ bản cho máy khách. Đây là quy trình tương tự mà chúng ta đã sử dụng trên các nút cụm khác. Chúng ta sẽ tạo một người dùng mới có tên là cephuser trên hộp, đồng bộ thời gian với ntpdate, cấu hình sudo password-less cho cephuser, v.v. Vậy chúng ta hãy bắt đầu...

Kết nối với nút client2 bằng SSH với tư cách là người dùng root:
Mã:
ssh root@client2
Chúng ta đã đăng nhập vào máy chủ với quyền truy cập root, bây giờ chúng ta có thể tạo cephuser mới.
Mã:
useradd -m -d /home/cephuser cephuser
passwd cephuser
NHẬP MẬT KHẨU MỚI CỦA BẠN
Sau khi người dùng mới được tạo, hãy bật sudo password-less cho người dùng bằng cách tạo tệp cấu hình mới trong thư mục sudoers.
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
Tiếp theo, cài đặt NTP, công cụ dòng lệnh ntpdate và các công cụ open-vm. Sau đó cập nhật và đồng bộ hóa thời gian hệ thống với ntpdate.
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
Vô hiệu hóa SELinux và chỉnh sửa tệp máy chủ.
Mã:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
Dán cấu hình máy chủ bên dướ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
10.0.15.16 client2
Lưu tệp hosts và thoát khỏi trình soạn thảo. Bây giờ hãy thử ping nút ceph-admin để kiểm tra kết nối và thiết lập tên máy chủ.
Mã:
ping -c 3 ceph-admin
Bạn sẽ thấy địa chỉ IP của nút ceph-admin là kết quả.


Bước 2 - Cài đặt Ceph Common Utilities trên Nút Client2​

Gói ceph-common có thể được cài đặt từ kho lưu trữ Ceph. Nó chứa các tiện ích Ceph để gắn kết và tương tác với Ceph Storage Cluster.

Trước khi chúng ta có thể tiến hành cài đặt gói theceph-common, chúng ta phải thêm epel-repository và kho lưu trữ Ceph.
Mã:
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Cập nhật hệ thống và cài đặt các tiện ích chung của Ceph.
Mã:
sudo yum -y update
sudo yum -y install ceph-common
Tiếp theo, chúng ta phải thêm cấu hình vào nút ceph-admin.


Bước 3 - Cấu hình nút Ceph-admin​

Trong bước này, chúng ta sẽ cấu hình cụm sao cho chúng ta có thể kết nối từ admin đến node client2 bằng ssh key (không cần mật khẩu).

Kết nối đến node ceph-admin với tư cách là root rồi đăng nhập vào cephuser bằng su.
Mã:
ssh root@ceph-admin
su - cephuser
Chỉnh sửa file cấu hình ssh và định nghĩa một phần cấu hình client2 mới.
Mã:
vim ~/.ssh/config
Cuối file, dán cấu hình bên dưới:
Mã:
Host client2
Hostname client2
User cephuser
Tiếp theo, thêm dòng hostconfiguration cho node client vào file '/etc/hosts' trên node ceph-admin.
Mã:
sudo vim /etc/hosts
Dán cấu hình host bên dưới vào cuối file.
Mã:
10.0.15.16 client2
Lưu file hosts và thoát khỏi trình soạn thảo.

Bây giờ hãy thêm khóa ssh của nút ceph-admin vào nút client2.
Mã:
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
NHẬP MẬT KHẨU client2
Khóa ceph-admin đã được thêm vào. Bây giờ chúng ta có thể truy cập nút client2 mà không cần mật khẩu từ nút ceph-admin.
Mã:
ssh client2



Bước 4 - Tạo Ceph MetaData Server​

Nếu bạn muốn chạy và gắn CephFS, bạn cần aceph metadata server (Ceph MDS). Ceph MDS đang chạy trên các nút OSD. Chúng ta có thể cài đặt Ceph MDS vào nút OSD bằng lệnh ceph-deploy từ nút ceph-admin.

Đăng nhập vào nút ceph-admin và trở thành thecephuser.
Mã:
ssh root@ceph-admin
su - cephuser
Đi đến thư mục cụm và chạy lệnh theceph-deploy để tạo một ceph metadata-server (Ceph MDS) mới. Tôi sẽ sử dụng nút 'osd1' làm máy chủ siêu dữ liệu.
Mã:
cd cluster/
ceph-deploy mds create osd1


Sau khi tạo máy chủ MDS trên nút osd1, chúng ta phải kết nối với nút bằng ssh.
Mã:
ssh osd1
Tiếp theo, tạo các nhóm mới cho máy chủ MDS, ít nhất chúng ta cần 2 nhóm - cephfs_data và cephfs_metadata.

Tạo các nhóm mới trên nút 'osd1'.
Mã:
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
Các nhóm mới đã sẵn sàng. Bây giờ chúng ta có thể tạo hệ thống tệp mới bằng cách sử dụng các nhóm được đặt tên: cephfs_data và cephfs_metadata.
Mã:
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs = Tên hệ thống tệp.

Khi bạn hoàn tất bước này mà không có lỗi, hãy kiểm tra máy chủ MDS bằng lệnh bên dưới.

Kiểm tra danh sách máy chủ MDS:
Mã:
ceph fs ls
Bây giờ bạn có thể thấy tên hệ thống tệp là 'cephfs', nhóm siêu dữ liệu là 'cephfs_metadata' và nhóm dữ liệu là 'cephfs_data'.

Hiển thị Trạng thái MDS:
Mã:
ceph mds stat
Đảm bảo MDS đã được bật và hoạt động trước khi bạn tiếp tục.




Bước 5 - Mount CephFS với Kernel Driver​

Máy chủ Ceph MDS đã được tạo trên nút 'osd1'. Bây giờ chúng ta có thể sử dụng CephFS. Trong bước này, chúng ta sẽ mount CephFS trên nút client2 dưới dạng hệ thống tệp bằng lệnh mount.

Trước khi bắt đầu bước tiếp theo, chúng ta cần cài đặt ceph-fuse từ kho lưu trữ ceph trên nút client2.
Mã:
sudo yum -y install ceph-fuse
Khi quá trình cài đặt hoàn tất, hãy sao chép khóa của người dùng. Trong cấu hình mặc định của chúng tôi, xác thực thecephx được bật. Người dùng mặc định là 'admin'.

Sao chép khóa từ nút máy chủ MDS 'osd1' sang nút client2 bằng lệnh scp, sau đó thay đổi quyền của khóa.
Mã:
ssh cephuser@osd1 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key


Tiếp theo, tạo một thư mục cephfs mới và gắn CephFS vào thư mục đó.
Mã:
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
Lưu ý:

Tên người dùng mặc định = admin
secretfile = ceph.key từ nút MDS osd1

Bạn sẽ thấy một hệ thống tệp mới có kiểu 'ceph' được gắn trong danh sách.
Mã:
sudo df -hT


Để hủy gắn hệ thống tệp, hãy sử dụng tiện ích lệnh umount.
Mã:
umount /mnt/cephfs



Bước 6 - Gắn CephFS làm Fuse​

Sau khi đã gắn CephFS thành công làm hệ thống tập tin, chúng ta sẽ gắn CephFS làm Fuse (Hệ thống tập tin trong USErspace). Đối với thiết lập này, chúng ta cần sao chép tệp cấu hình 'ceph.conf' và khóa từ nút giám sát 'mon1'.

Tạo một thư mục ceph mới trên nút client2 và sao chép tệp cấu hình và khóa.
Mã:
sudo mkdir -p /etc/ceph/
sudo scp root@mon1:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp root@mon1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
Thay đổi quyền của các tệp.
Mã:
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Tiếp theo, tạo một thư mục fuse mới và gắn CephFS làm Fuse vào Thư mục '/mnt/fuse'.
Mã:
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse


Đảm bảo không có lỗi nào và kiểm tra xem CephFS đã được gắn kết chưa.
Mã:
sudo df -hT
Để hủy gắn kết CephFS Fuse, hãy sử dụng lệnh kill.
Mã:
sudo ps -aux | grep ceph-fuse
kill -2 PID



Bước 7 - Gắn kết CephFS bằng fstab​

Trong bước này, chúng ta sẽ gắn kết CephFS vĩnh viễn bằng fstab. Chúng tôi sẽ chỉnh sửa /etc/fstab và thêm cấu hình để gắn CephFS với trình điều khiển hạt nhân, sử dụng lệnh mount.

Chỉnh sửa tệp fstab.
Mã:
sudo vim /etc/fstab
Dán cấu hình bên dưới vào cuối tệp:
Mã:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
Lưu tệp và thoát vim.

Gắn kết tất cả các đĩa từ fstab bằng lệnh mount -a, sau đó liệt kê tất cả các đĩa có sẵn.
Mã:
sudo mount -a
sudo df -hT
Cuối cùng, khởi động lại hệ thống và kiểm tra các đĩa có sẵn để đảm bảo rằng cấu hình an toàn khi khởi động lại.
Mã:
reboot
sudo df -hT
Bạn sẽ thấy CephFS đã được gắn kết tự động với fstab.


Tham khảo​

 
Back
Bên trên