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 và có thể hoạt động mà không có một điểm lỗi nào.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt và xây dựng một cụm Ceph trên máy chủ Ubuntu 16.04. Một cụm Ceph bao gồm các thành phần sau:
hostname Địa chỉ IP
ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
osd2 10.0.15.22
osd3 10.0.15.23
client 10.0.15.15
Tạo Người dùng Ceph
Tạo người dùng mới có tên 'cephuser' trên tất cả các nút.
Sau khi tạo người dùng mới, chúng ta cần cấu hình cephuser cho các đặc quyền sudo không cần mật khẩu. Điều này có nghĩa là 'cephuser' có thể chạy và có được các đặc quyền sudo mà không cần phải nhập mật khẩu trước.
Chạy các lệnh bên dưới để đạt được điều đó.
Cài đặt và cấu hình NTP
Cài đặt NTP để đồng bộ hóa ngày và giờ trên tất cả các nút. Chạy lệnh ntpdate để đặt ngày và giờ qua NTP. Chúng tôi sẽ sử dụng máy chủ NTP của nhóm US. Sau đó, hãy khởi động và bật máy chủ NTP để chạy khi khởi động.
Cài đặt Open-vm-tools
Nếu bạn đang chạy tất cả các nút bên trong VMware, bạn cần cài đặt tiện ích ảo hóa này.
Cài đặt Python và parted
Trong hướng dẫn này, chúng ta cần các gói python để xây dựng ceph-cluster. Cài đặt python và python-pip.
Cấu hình tệp Hosts
Chỉnh sửa tệp hosts trên tất cả các nút bằng trình soạn thảo vim.
Dán cấu hình bên dưới:
Lưu tệp hosts và thoát khỏi trình soạn thảo vim.
Bây giờ bạn có thể thử ping giữa các tên máy chủ để kiểm tra mạng kết nối.
Nút admin được sử dụng để cài đặt và cấu hình tất cả các nút cụm, do đó người dùng trên nút ceph-admin phải có quyền kết nối với tất cả các nút mà không cần mật khẩu. Chúng ta cần cấu hình quyền truy cập SSH không cần mật khẩu cho 'cephuser' trên nút 'ceph-admin'.
Tạo khóa ssh cho 'cephuser'.
Để trống cụm mật khẩu.
Tiếp theo, tạo tệp cấu hình cho cấu hình ssh.
Dán cấu hình bên dưới:
Lưu tệp và thoát khỏi vim.
Thay đổi quyền của tệp cấu hình thành 644.
Bây giờ hãy thêm khóa vào tất cả các nút bằng lệnh ssh-copy-id.
Nhập mật khẩu cephuser của bạn khi được yêu cầu.
Bây giờ hãy thử truy cập máy chủ osd1 từ nút ceph-admin để kiểm tra xem đăng nhập không cần mật khẩu có hoạt động không.
Đăng nhập vào nút ceph-admin và cài đặt các gói ufw.
Mở cổng 80, 2003 và 4505-4506, sau đó tải lại firewalld.
Khởi động và bật ufw để khởi động khi khởi động.
Từ nút ceph-admin, đăng nhập vào nút giám sát 'mon1' và cài đặt ufw.
Mở các cổng cho nút giám sát theceph và khởi động ufw.
Cuối cùng, mở các cổng này trên mỗi nút osd: ceph-osd1, ceph-osd2 và ceph-osd3 - cổng 6800-7300.
Đăng nhập vào từng nút ceph-osd từ ceph-admin và cài đặt ufw.
Mở các cổng trên các nút theosd và tải lại firewalld.
Cấu hình tường lửa ufw đã hoàn tất.
Kiểm tra sơ đồ phân vùng bằng lệnh fdisk.
Định dạng phân vùng /dev/sdb bằng hệ thống tệp XFS và bảng phân vùng GPT bằng lệnh parted.
Tiếp theo, định dạng phân vùng theo định dạng XFS bằng lệnh themkfs.
Bây giờ hãy kiểm tra phân vùng và bạn sẽ thấy một Phân vùng XFS/dev/sdb.
Cài đặt ceph-deploy trên nút ceph-admin
Trong bước đầu tiên, chúng ta đã cài đặt python và python-pip vào hệ thống. Bây giờ chúng ta cần cài đặt công cụ triển khai Ceph 'ceph-deploy' từ kho lưu trữ python pypi.
Cài đặt ceph-deploy trên nút ceph-admin bằng lệnh pip.
Lưu ý: Đảm bảo tất cả các nút đều được cập nhật.
Sau khi công cụ ceph-deploy đã được cài đặt, hãy tạo một thư mục mới để cấu hình cụm Ceph.
Tạo một Cluster mới
Tạo một thư mục cluster mới.
Tiếp theo, tạo một cluster mới bằng lệnh 'ceph-deploy' bằng cách định nghĩa nút giám sát 'mon1'.
Lệnh này sẽ tạo tệp cấu hình cụm Ceph 'ceph.conf' trong thư mục cụm.
Chỉnh sửa tệp ceph.conf bằng vim.
Dán cấu hình bên dưới vào khối [global].
Lưu tệp và thoát editor.
Cài đặt Ceph trên tất cả các nút
Bây giờ hãy cài đặt Ceph trên tất cả các nút từ nút ceph-admin bằng một lệnh duy nhất.
Lệnh sẽ tự động cài đặt Ceph trên tất cả các nút: mon1, osd1-3 và ceph-admin - Quá trình cài đặt sẽ mất một thời gian.
Bây giờ hãy triển khai nút giám sát trên nút mon1.
Lệnh sẽ tạo một khóa giám sát, hãy kiểm tra khóa bằng lệnh ceph này.
Thêm OSDS vào Cluster
Sau khi Ceph đã được cài đặt trên tất cả các nút, bây giờ chúng ta có thể thêm Daemon OSD vào cụm. OSD Daemons sẽ tạo phân vùng dữ liệu và nhật ký trên đĩa /dev/sdb.
Kiểm tra đĩa /dev/sdb khả dụng trên tất cả các nút osd.
Bạn sẽ thấy /dev/sdb với định dạng XFS mà chúng ta đã tạo trước đó.
Tiếp theo, xóa các bảng phân vùng trên tất cả các nút bằng tùy chọn zap.
Lệnh này sẽ xóa tất cả dữ liệu trên /dev/sdb trên các nút Ceph OSD.
Bây giờ hãy chuẩn bị tất cả các nút OSD và đảm bảo rằng không có lỗi nào trong kết quả.
Khi bạn thấy ceph-osd1-3 đã sẵn sàng để sử dụng OSD trong kết quả, thì lệnh đã thành công.
Kích hoạt OSD bằng lệnh bên dưới:
Bây giờ bạn có thể kiểm tra lại đĩa sdb trên các nút OSDS.
Kết quả là /dev/sdb có hai phân vùng bây giờ:
Tiếp theo, triển khai khóa quản lý tới tất cả các nút được liên kết.
Thay đổi quyền của tệp khóa bằng cách chạy lệnh bên dưới trên tất cả các nút.
Cụm Ceph trên Ubuntu 16.04 đã được tạo.
Từ nút ceph-admin, hãy đăng nhập vào máy chủ giám sát Ceph 'mon1'.
Chạy lệnh bên dưới để kiểm tra tình trạng cụm.
Bây giờ hãy kiểm tra trạng thái cụm.
Bạn có thể xem kết quả bên dưới:
Đảm bảo tình trạng Ceph OK và có một nút giám sát 'mon1' có địa chỉ IP '10.0.15.11'. Có 3máy chủ OSD và tất cả đều đang hoạt động, và phải có dung lượng đĩa trống là 45GB - 3x15GB phân vùng Ceph Data OSD.
Chúng tôi đã xây dựng thành công một Ceph Cluster mới trên Ubuntu 16.04.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt và xây dựng một cụm Ceph trên máy chủ Ubuntu 16.04. Một cụm Ceph bao gồm các thành phần sau:
- Ceph OSD (ceph-osd) - Xử lý lưu trữ dữ liệu, sao chép dữ liệu và phục hồi. Một cụm Ceph cần ít nhất hai máy chủ Ceph OSD. Chúng tôi sẽ sử dụng ba máy chủ Ubuntu 16.04 trong thiết lập này.
- Ceph Monitor (ceph-mon) - Giám sát trạng thái cụm và chạy bản đồ OSD và bản đồ CRUSH. Chúng tôi sẽ sử dụng một máy chủ ở đây.
- Ceph Meta Data Server (ceph-mds) - điều này là cần thiết nếu bạn muốn sử dụng Ceph làm Hệ thống tệp.
Điều kiện tiên quyết
- 6 nút máy chủ đã cài đặt máy chủ Ubuntu 16.04
- Quyền root trên tất cả các nút
hostname Địa chỉ IP
ceph-admin 10.0.15.10
mon1 10.0.15.11
osd1 10.0.15.21
osd2 10.0.15.22
osd3 10.0.15.23
client 10.0.15.15
Bước 1 - Cấu hình tất cả các nút
Trong bước này, chúng ta sẽ cấu hình tất cả 6 nút để chuẩn bị cho việc cài đặt phần mềm Ceph Cluster. Vì vậy, bạn phải làm theo và chạy các lệnh bên dưới trên tất cả các nút. Và đảm bảo rằng ssh-server được cài đặt trên tất cả các nút.Tạo Người dùng Ceph
Tạo người dùng mới có tên 'cephuser' trên tất cả các nút.
Mã:
useradd -m -s /bin/bash cephuser
passwd cephuser
Chạy các lệnh bên dưới để đạt được điều đó.
Mã:
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ài đặt NTP để đồng bộ hóa ngày và giờ trên tất cả các nút. Chạy lệnh ntpdate để đặt ngày và giờ qua NTP. Chúng tôi sẽ sử dụng máy chủ NTP của nhóm US. Sau đó, hãy khởi động và bật máy chủ NTP để chạy khi khởi động.
Mã:
sudo apt-get install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntp
systemctl start ntp
Nếu bạn đang chạy tất cả các nút bên trong VMware, bạn cần cài đặt tiện ích ảo hóa này.
Mã:
sudo apt-get install -y open-vm-tools
Trong hướng dẫn này, chúng ta cần các gói python để xây dựng ceph-cluster. Cài đặt python và python-pip.
Mã:
sudo apt-get install -y python python-pip parted
Chỉnh sửa tệp hosts trên tất cả các nút bằng trình soạn thảo vim.
Mã:
vim /etc/hosts
Mã:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 ceph-osd1
10.0.15.22 ceph-osd2
10.0.15.23 ceph-osd3
10.0.15.15 ceph-client
Bây giờ bạn có thể thử ping giữa các tên máy chủ để kiểm tra mạng kết nối.
Mã:
ping -c 5 mon1
Bước 2 - Cấu hình Máy chủ SSH
Trong bước này, chúng ta sẽ cấu hình nút ceph-admin. Nút admin được sử dụng để cấu hình nút giám sát và nút osd. Đăng nhập vào nút ceph-admin và truy cập 'cephuser'.
Mã:
ssh root@ceph-admin
su - cephuser
Tạo khóa ssh cho 'cephuser'.
Mã:
ssh-keygen
Tiếp theo, tạo tệp cấu hình cho cấu hình ssh.
Mã:
vim ~/.ssh/config
Mã:
Máy chủ ceph-admin
Tên máy chủ ceph-admin
Người dùng cephuser
Máy chủ mon1
Tên máy chủ mon1
Người dùng cephuser
Máy chủ ceph-osd1
Tên máy chủ ceph-osd1
Người dùng cephuser
Máy chủ ceph-osd2
Tên máy chủ ceph-osd2
Người dùng cephuser
Máy chủ ceph-osd3
Tên máy chủ ceph-osd3
Người dùng cephuser
Máy chủ ceph-client
Tên máy chủ ceph-client
Người dùng cephuser
Thay đổi quyền của tệp cấu hình thành 644.
Mã:
chmod 644 ~/.ssh/config
Mã:
ssh-keyscan ceph-osd1 ceph-osd2 ceph-osd3 ceph-client mon1 >> ~/.ssh/known_hosts
ssh-copy-id ceph-osd1
ssh-copy-id ceph-osd2
ssh-copy-id ceph-osd3
ssh-copy-id mon1
Bây giờ hãy thử truy cập máy chủ osd1 từ nút ceph-admin để kiểm tra xem đăng nhập không cần mật khẩu có hoạt động không.
Mã:
ssh ceph-osd1
Bước 3 - Cấu hình Tường lửa Ubuntu
Vì lý do bảo mật, chúng ta cần bật tường lửa trên các máy chủ. Tốt nhất là chúng ta sử dụng Ufw (Uncomplicated Firewall), tường lửa mặc định của Ubuntu, để bảo vệ hệ thống. Trong bước này, chúng ta sẽ bật ufw trên tất cả các nút, sau đó mở các cổng cần thiết cho ceph-admin, ceph-mon và ceph-osd.Đăng nhập vào nút ceph-admin và cài đặt các gói ufw.
Mã:
ssh root@ceph-admin
sudo apt-get install -y ufw
Mã:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 2003/tcp
sudo ufw allow 4505:4506/tcp
Mã:
sudo ufw enable
Từ nút ceph-admin, đăng nhập vào nút giám sát 'mon1' và cài đặt ufw.
Mã:
ssh mon1
sudo apt-get install -y ufw
Mã:
sudo ufw allow 22/tcp
sudo ufw allow 6789/tcp
sudo ufw enable
Đăng nhập vào từng nút ceph-osd từ ceph-admin và cài đặt ufw.
Mã:
ssh ceph-osd1
sudo apt-get install -y ufw
Mã:
sudo ufw allow 22/tcp
sudo ufw allow 6800:7300/tcp
sudo ufw enable
Bước 4 - Cấu hình các nút Ceph OSD
Trong hướng dẫn này, chúng ta có 3 nút OSD, mỗi nút này có hai phân vùng ổ cứng.- /dev/sda cho phân vùng gốc
- /dev/sdb là phân vùng trống - 20GB
Mã:
ssh ceph-osd1
ssh ceph-osd2
ssh ceph-osd3
Mã:
sudo fdisk -l /dev/sdb
Mã:
sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
Mã:
sudo mkfs.xfs -f /dev/sdb
Mã:
sudo fdisk -s /dev/sdb
sudo blkid -o value -s TYPE /dev/sdb
Bước 5 - Xây dựng cụm Ceph
Trong bước này, chúng ta sẽ cài đặt Ceph trên tất cả các nút từ ceph-admin. Để bắt đầu, hãy đăng nhập vào nút ceph-admin.
Mã:
ssh root@ceph-admin
su - cephuser
Trong bước đầu tiên, chúng ta đã cài đặt python và python-pip vào hệ thống. Bây giờ chúng ta cần cài đặt công cụ triển khai Ceph 'ceph-deploy' từ kho lưu trữ python pypi.
Cài đặt ceph-deploy trên nút ceph-admin bằng lệnh pip.
Mã:
sudo pip install ceph-deploy
Sau khi công cụ ceph-deploy đã được cài đặt, hãy tạo một thư mục mới để cấu hình cụm Ceph.
Tạo một Cluster mới
Tạo một thư mục cluster mới.
Mã:
mkdir cluster
cd cluster/
Mã:
ceph-deploy new mon1
Chỉnh sửa tệp ceph.conf bằng vim.
Mã:
vim ceph.conf
Mã:
# Địa chỉ mạng của bạn
public network = 10.0.15.0/24
osd pool default size = 2
Cài đặt Ceph trên tất cả các nút
Bây giờ hãy cài đặt Ceph trên tất cả các nút từ nút ceph-admin bằng một lệnh duy nhất.
Mã:
ceph-deploy install ceph-admin ceph-osd1 ceph-osd2 ceph-osd3 mon1
Bây giờ hãy triển khai nút giám sát trên nút mon1.
Mã:
ceph-deploy mon create-initial
Mã:
ceph-deploy gatherkeys mon1
Thêm OSDS vào Cluster
Sau khi Ceph đã được cài đặt trên tất cả các nút, bây giờ chúng ta có thể thêm Daemon OSD vào cụm. OSD Daemons sẽ tạo phân vùng dữ liệu và nhật ký trên đĩa /dev/sdb.
Kiểm tra đĩa /dev/sdb khả dụng trên tất cả các nút osd.
Mã:
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
Bạn sẽ thấy /dev/sdb với định dạng XFS mà chúng ta đã tạo trước đó.
Tiếp theo, xóa các bảng phân vùng trên tất cả các nút bằng tùy chọn zap.
Mã:
ceph-deploy disk zap ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Bây giờ hãy chuẩn bị tất cả các nút OSD và đảm bảo rằng không có lỗi nào trong kết quả.
Mã:
ceph-deploy osd prepare ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Kích hoạt OSD bằng lệnh bên dưới:
Mã:
ceph-deploy osd activate ceph-osd1:/dev/sdb ceph-osd2:/dev/sdb ceph-osd3:/dev/sdb
Mã:
ceph-deploy disk list ceph-osd1 ceph-osd2 ceph-osd3
Kết quả là /dev/sdb có hai phân vùng bây giờ:
- /dev/sdb1 - Ceph Data
- /dev/sdb2 - Ceph Journal
Mã:
ssh ceph-osd1
sudo fdisk -l /dev/sdb
Tiếp theo, triển khai khóa quản lý tới tất cả các nút được liên kết.
Mã:
ceph-deploy admin ceph-admin mon1 ceph-osd1 ceph-osd2 ceph-osd3
Mã:
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Bước 6 - Kiểm tra Ceph
Ở bước 4, chúng tôi đã cài đặt và tạo cụm Ceph mới và thêm các nút OSDS vào cụm. Bây giờ chúng ta nên kiểm tra cụm để đảm bảo rằng nó hoạt động như mong đợi.Từ nút ceph-admin, hãy đăng nhập vào máy chủ giám sát Ceph 'mon1'.
Mã:
ssh mon1
Mã:
sudo ceph health
Mã:
sudo ceph -s
Đảm bảo tình trạng Ceph OK và có một nút giám sát 'mon1' có địa chỉ IP '10.0.15.11'. Có 3máy chủ OSD và tất cả đều đang hoạt động, và phải có dung lượng đĩa trống là 45GB - 3x15GB phân vùng Ceph Data OSD.
Chúng tôi đã xây dựng thành công một Ceph Cluster mới trên Ubuntu 16.04.