- Mô hình đầy đủ
- OS: Ubuntu Server 16.04 64 bit, kernel 4.4.0-62-generic
- Các dải mạng:
- Management Network: sử dụng để quản lý (ssh) các máy chủ và để các máy chủ tải các gói cài đặt từ Internet.
- Data Network: sử dụng để các máy client có thể truy cập và sử dụng tài nguyên lưu trữ trên Ceph.
- Replication Network: Sử dụng để nhân bản dữ liệu giữa các node Ceph.
- Ổ cứng:
- Label của các ổ cứng trong hướng dẫn này là vda, vdb, vdc.
===
- Lưu ý:
- Đăng nhập với quyền root trên tất cả các bước cài đặt.
- Các thao tác sửa file trong hướng dẫn này sử dụng lệnh
nano
- Thực hiện trên tất cả các node trong cluster
Hướng dẫn dưới đây cài trên node ceph1
, node ceph2
, ceph3
cài tương tự
-
Chạy lệnh để cập nhật các gói phần mềm và cài gói phần mêm phụ thuộc
apt-get update && apt-get -y upgrade apt-get install python-minimal
-
Thiết lập địa chỉ IP cho từng node
-
Dùng lệnh
nano
để sửa file/etc/network/interfaces
với nội dung như sau.# Interface MGNT auto eth0 iface eth0 inet static address 192.168.20.91 gateway 192.168.20.254 netmask 255.255.255.0 dns-nameservers 8.8.8.8 # Interface PUB auto eth1 iface eth1 inet static address 10.10.10.91 netmask 255.255.255.0 # Interface REP auto eth2 iface eth2 inet static address 10.10.20.91 netmask 255.255.255.0
-
Khởi động lại card mạng sau khi thiết lập IP tĩnh
ifdown -a && ifup -a
-
Cấu hình hostname
-
Dùng
nano
sửa file/etc/hostname
với tên làceph1
ceph1
-
Cập nhật file
/etc/hosts
để phân giải từ IP sang hostname và ngược lại, nội dung như sau127.0.0.1 localhost 127.0.1.1 ceph1 10.10.10.91 ceph1 10.10.10.92 ceph2 10.10.10.93 ceph3
-
Cài gói
chrony
apt-get -y install chrony
-
Mở file
/etc/chrony/chrony.conf
và tìm các dòng dướipool 2.debian.pool.ntp.org offline iburst
-
Thay bằng các dòng sau
server 1.vn.pool.ntp.org iburst server 0.asia.pool.ntp.org iburst server 3.asia.pool.ntp.org iburst
-
Khởi động lại dịch vụ NTP
service chrony restart
-
Kiểm tra lại hoạt động của NTP bằng lệnh dưới
root@ceph1:~# chronyc sources
-
Kết quả như sau
210 Number of sources = 3 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^+ 220.231.122.105 3 6 17 16 +12ms[+4642us] +/- 139ms ^** 103.245.79.2 2 6 17 17 -10ms[ -12ms] +/- 176ms ^? routerida1.soprano-asm.ne 0 6 0 10y +0ns[ +0ns] +/- 0ns
- Tạo user và gán quyền
useradd -d /home/cephuser -m cephuser passwd cephuser echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser chmod 0440 /etc/sudoers.d/cephuser
-
Khai báo repo
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add - echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
Update và cài đặt pakage
ceph-deploy
apt-get -y update apt-get install ceph-deploy
-
Chuyển tới user
cephuser
và tạo keysu - cephuser ssh-keygen -t rs
-
Kết qủa
Generating public/private rsa key pair. Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ubuntu/.ssh/id_rsa. Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub. The key fingerprint is: SHA256:S4UVTlj5Y2g88FHfFnzwZ46wzOFseMkZljDidkr5n+c ubuntu@ubuntu-KVM The key's randomart image is: +---[RSA 2048]----+ | .oB+. oo | | .oBoo o +o| | *+++* . B| | o =*O+B =.| | S.oo%.. .| | . . + . | | . o . | | o | | E | +----[SHA256]-----+
-
Copy ssh key tới tất cả các node
ssh-copy-id cephuser@ceph1 ssh-copy-id cephuser@ceph2 ssh-copy-id cephuser@ceph3
-
Tạo thư mục chứa các file cấu hình và quản lí của Ceph cluster. Sau đó cài đặt MON trên cả 3 node ceph
mkdir cluster cd cluster ceph-deploy new ceph1 ceph2 ceph3
-
Thêm các dòng sau vào file
ceph.conf
vừa tạo:osd pool default size = 2 public network = 10.10.10.0/24 cluster network = 10.10.20.0/24
-
Cài đặt Ceph. Các pakage và file cấu hình sẽ được cài đặt trên tất cả các node
ceph-deploy install --release luminous ceph1 ceph2 ceph3
-
Cài đặt và cấu hình Ceph monitor trên các node
ceph-deploy mon create-initial
-
Copy key tới các node Ceph và phân quyền
ceph-deploy admin ceph1 ceph2 ceph3 sudo chmod +r /etc/ceph/ceph.client.admin.keyring
-
Deploy a manager daemon
ceph-deploy mgr create ceph1 ceph2 ceph3
-
Thiết lập các OSD. Trong mô hình của chúng ta, mỗi node gồm 3 partion vda vdb và vdc. Chúng ta sẽ sử dụng vdb và vdc làm các OSD.
ceph-deploy osd create ceph1:vdb ceph2:vdb ceph3:vdb ceph-deploy osd create ceph1:vdc ceph2:vdc ceph3:vdc
-
Trong phiên bản Luminous, có tích hợp thêm
dashboard plugin
cung cấp giao diện đồ họa hiển thị tổng quan status của các thành phần trong Ceph cluster.dashboard plugin
được quản lí bới ceph-mgr. -
Để enable dashboard, sử dụng câu lệnh sau:
ceph mgr module enable dashboard
-
Truy cập http://192.168.20.91:7000 để sử dụng dashboard.
-
Kiểm tra trạng thái Ceph cluster
ceph -s
-
Kết quả:
cluster: id: ddb94b0b-f4f2-4792-a0c5-adc0e84eaca2 health: HEALTH_OK services: mon: 3 daemons, quorum ceph1,ceph2,ceph3 mgr: ceph1(active), standbys: ceph2, ceph3 osd: 6 osds: 6 up, 6 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 bytes usage: 6337 MB used, 85216 MB / 91553 MB avail pgs:
-
Kiểm tra trạng thái OSD
ceph osd tree
-
Kết qủa:
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.08752 root default -3 0.02917 host ceph1 0 hdd 0.01459 osd.0 up 1.00000 1.00000 3 hdd 0.01459 osd.3 up 1.00000 1.00000 -5 0.02917 host ceph2 1 hdd 0.01459 osd.1 up 1.00000 1.00000 4 hdd 0.01459 osd.4 up 1.00000 1.00000 -7 0.02917 host ceph3 2 hdd 0.01459 osd.2 up 1.00000 1.00000 5 hdd 0.01459 osd.5 up 1.00000 1.00000
[2] http://docs.ceph.com/docs/master/start/quick-start-preflight/
[3] https://linoxide.com/ubuntu-how-to/create-ceph-cluster-ubuntu-16-04/
mình làm theo như trên test trên virtual box mà khi create osd nói báo lỗi:
cephuser@ceph1:~/cluster$ ceph-deploy osd create ceph1:sdb ceph2:sdb ceph3:sdb
usage: ceph-deploy [-h] [-v | -q] [--version] [--username USERNAME]
[--overwrite-conf] [--ceph-conf CEPH_CONF]
COMMAND ...
ceph-deploy: error: unrecognized arguments: ceph2:sdb ceph3:sdb
cephuser@ceph1:~/cluster$ ceph-deploy osd create ceph1:sdb
[ceph_deploy.conf][DEBUG ] found configuration file at: /home/cephuser/.cephdeploy.conf
[ceph_deploy.cli][INFO ] Invoked (2.0.0): /usr/bin/ceph-deploy osd create ceph1:sdb
[ceph_deploy.cli][INFO ] ceph-deploy options:
[ceph_deploy.cli][INFO ] verbose : False
[ceph_deploy.cli][INFO ] bluestore : None
[ceph_deploy.cli][INFO ] cd_conf : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7ffb7a7e3fc8>
[ceph_deploy.cli][INFO ] cluster : ceph
[ceph_deploy.cli][INFO ] fs_type : xfs
[ceph_deploy.cli][INFO ] block_wal : None
[ceph_deploy.cli][INFO ] default_release : False
[ceph_deploy.cli][INFO ] username : None
[ceph_deploy.cli][INFO ] journal : None
[ceph_deploy.cli][INFO ] subcommand : create
[ceph_deploy.cli][INFO ] host : ceph1:sdb
[ceph_deploy.cli][INFO ] filestore : None
[ceph_deploy.cli][INFO ] func : <function osd at 0x7ffb7aa32578>
[ceph_deploy.cli][INFO ] ceph_conf : None
[ceph_deploy.cli][INFO ] zap_disk : False
[ceph_deploy.cli][INFO ] data : None
[ceph_deploy.cli][INFO ] block_db : None
[ceph_deploy.cli][INFO ] dmcrypt : False
[ceph_deploy.cli][INFO ] overwrite_conf : False
[ceph_deploy.cli][INFO ] dmcrypt_key_dir : /etc/ceph/dmcrypt-keys
[ceph_deploy.cli][INFO ] quiet : False
[ceph_deploy.cli][INFO ] debug : False
[ceph_deploy.osd][DEBUG ] Creating OSD on cluster ceph with data device None
[ceph_deploy][ERROR ] NeedDiskError: Must supply disk/path argument: ceph1:sdb
search trên mạng thì không ra cách khác phục,giúp mình xem thử với