Skip to content

Instantly share code, notes, and snippets.

@vanduc95
Last active October 15, 2020 11:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save vanduc95/a17f80d0636badd9aa002f2b493b777b to your computer and use it in GitHub Desktop.
Save vanduc95/a17f80d0636badd9aa002f2b493b777b to your computer and use it in GitHub Desktop.
install Ceph Luminous on Ubuntu 16.04

Hướng dẫn cài đặt Ceph Luminous


I. Cài đặt cơ bản


1. Chuẩn bị môi trường

1.1 Mô hình mạng

  • Mô hình đầy đủ

Ceph Jewel Topo

1.2 Các tham số phần cứng đối với các node

Ceph hardware

Chú ý khi lựa chọn OS và lựa chọn dải mạng

- 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.

2. Cài đặt các thành phần chung trên tất cả các node

===

  • 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

2.1. Thiết lập và cài đặt các gói cơ bản

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ư sau

     127.0.0.1      localhost
     127.0.1.1      ceph1
     
     10.10.10.91    ceph1
     10.10.10.92    ceph2
     10.10.10.93    ceph3

2.2. Cài đặt NTP

  • Cài gói chrony

     apt-get -y install chrony
  • Mở file /etc/chrony/chrony.conf và tìm các dòng dưới

     pool 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	
    

2.3. Tạo user cephuser

  • 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
    

3. Thực hiện cài đặt trên node ceph1

  • 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 key

     su - 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
    

4. Enable Dashboard

  • 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.

enter image description here

5. Kiểm tra

  • 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 
    

Tham khảo

[1] https://github.com/infn-bari-school/cloud-storage-tutorials/wiki/Ceph-cluster-installation-(jewel-on-Ubuntu-xenial)

[2] http://docs.ceph.com/docs/master/start/quick-start-preflight/

[3] https://linoxide.com/ubuntu-how-to/create-ceph-cluster-ubuntu-16-04/

@vuongtrinhan
Copy link

vuongtrinhan commented Mar 21, 2018

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

@stavultras
Copy link

stavultras commented Mar 26, 2018

@vuongtrinhan instead of ceph-deploy osd create ceph1:sdb ceph2:sdb ceph3:sdb try:

ceph-deploy osd create --data /dev/sdb ceph1
ceph-deploy osd create --data /dev/sdb ceph2
ceph-deploy osd create --data /dev/sdb ceph3

on admin server.

@vuongtrinhan
Copy link

thanks

@kocoten1992
Copy link

@stavultras, you are a life saver, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment