Ceph v12.2 Luminous基於ubuntu16.04集群部署


1. Ceph介紹

Ceph 是一個高性能、可靠、可擴展的開源存儲平台。它是一個自由的分布式存儲系統,提供了對象、塊和文件級存儲的接口,並可以不受單點故障的影響而運行。

Ceph集群結構:

  • (1)Ceph Admin-管理節點,用來安裝ceph-deploy 進行ceph部署使用,基本上大部分操作都在這台機器上。
  • (2)Ceph OSD (ceph-osd) - 控制數據存儲,數據復制和恢復。Ceph 集群需要至少兩個 Ceph OSD 服務器。這次安裝中我們將使用三個 Ubuntu 服務器。
  • (3)Ceph Monitor (ceph-mon) - 監控集群狀態並運行 OSD 映射 和 CRUSH 映射。這里我們使用一個服務器。
  • (4)Ceph Meta Data Server (ceph-mds) - 如果你想把 Ceph 作為文件系統使用,就需要這個。

2. OS系統

Ubuntu 16.04.3

3. Ceph 版本

Ceph v12.2 Luminous

4. 設置固定IP和修改主機名(所有節點)

  • (1)設置對應的固定IP(每個節點分別設置)

    192.168.31.131 admin_server 192.168.31.132 mon_server 192.168.31.133 osd_server_1 192.168.31.134 osd_server_2
  • (2)修改/etc/hostname,修改為對應的主機名
  • (3)修改/etc/hosts
    將以下添加到hosts

    192.168.31.132 mon_server 192.168.31.133 osd_server_1 192.168.31.134 osd_server_2 

5. 修改apt源(所有節點)

  • (1)修改/etc/apt/sources.list,增加網易下載源(xenial 是ununtu16.04的版本代號,不同版本不一樣)
deb http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse ## 測試版源 deb http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse ## 源碼 deb-src http://mirrors.163.com/ubuntu/ xenial main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ xenial-backports main restricted universe multiverse ##測試版源 deb-src http://mirrors.163.com/ubuntu/ xenial-proposed main restricted universe multiverse
  • (2)更新
sudo apt-get update sudo apt-get install

6. OS環境配置(所有節點)

  • (1)安裝ntp:用於同步所有節點的日期和時間
    sudo apt-get install ntp
  • (2)安裝SSH: 用於admin控制其它節點
    sudo apt-get install openssh-server

7. 創建ceph用戶(所有節點)

sudo useradd -d /home/cephuser -m cephuser sudo passwd cephuser echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser sudo chmod 0440 /etc/sudoers.d/cephuser

8. 安裝ceph apt key(admin節點)

  • (1)安裝key(使用163源)
wget -q -O- 'http://mirrors.163.com/ceph/keys/release.asc' | sudo apt-key add - echo deb http://mirrors.163.com/ceph/debian-luminous/ $(lsb_release -sc) main |www.bajieyy.org sudo tee /etc/apt/sources.list.d/ceph.list
  • (2)安裝ceph-deploy
    sudo apt-get update && sudo apt-get install -y ceph-deploy

9. 創建ssh信任(admin)

  • (1)生成公鑰
    ssh-keygen

(全按回車鍵,默認)

Generating public/private key pair. Enter file in which to save the key (/ceph-admin/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /ceph-admin/.ssh/id_rsa. Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.
  • (2)復制public key到其它節點需在普通用戶權限下執行,在對話窗口輸入yes,然后輸入對端用戶密碼
ssh-copy-id cephuser@mon_server ssh-copy-id cephuser@osd_server_1 ssh-copy-id cephuser@osd_server_2
  • (3)修改 ~/.ssh/config
    添加以下內容:
Host mon_server
  Hostname mon_server
  User cephuser Host osd_server_1 Hostname osd_server_1 User cephuser Host osd_server_2 Hostname osd_server_2 User cephuser

10. 開始創建集群(admin)

  • (1)使用ceph-deploy部署。 首先需要創建工作環境,該環境會保存所有的配置文件:
mkdir ~/my-cluster cd ~/my-cluster
  • (2)創建集群,其中mon_server是monitor節點,執行該命令會生成ceph配置文件、monitor密鑰文件以及日志文件。
    ceph-deploy new mon_server
  • (3)修改默認冗余份數(此參數只有當OSD節點小於3的時候才需要修改,默認的冗余份數是3,如果是2節點需要設置為2,如果osd節點大於2,則此步驟省略),修改ceph.conf文件,第一個參數2是副本數量,第二個2000是 日志大小約為2G,在[global]下增加以下內容:
osd pool default size = 2 osd journal size = 2000 
  • (4)配置網卡和網絡(OSD節點單網卡請忽略)
    OSD節點是雙網卡,因此需要設置使用的網卡和網絡地址

修改ceph.conf文件,在[global]下增加以下內容:

public network = 192.168.31.0/24 cluster network = 10.10.100.0/24
  • (5)開始安裝ceph
    注:因為CFW的問題,管理節點ceph-Deploy前Ceph鏡像源修改非常重要,這里采用了網易鏡像
export CEPH_DEPLOY_REPO_URL=http://mirrors.163.com/ceph/debian-luminous/ export CEPH_DEPLOY_GPG_URL=http://mirrors.163.com/ceph/keys/release.asc
  • (6)在所有節點開始安裝ceph
    ceph-deploy install admin_server mon_server osd_server_1 osd_server_2
  • (7)初始化mon節點和收集密鑰信息
    ceph-deploy mon create-initial

執行完畢,目錄應該有以下文件:

{cluster-name}.client.admin.keyring {cluster-name}.bootstrap-osd.keyring {cluster-name}.bootstrap-mds.keyring {cluster-name}.bootstrap-rgw.keyring

完成以上步驟,安裝完成,但還沒有配置osd節點。

  • (8) 配置osd節點
    lsblk命令查看磁盤結構,假設選擇的是/dev/sdb(使用虛擬機的話,可以添加磁盤)

格式化對應的磁盤:

ceph-deploy disk zap osd_server_1:sdb ceph-deploy disk zap osd_server_2:sdb

以上步驟會清空磁盤的所有數據。 接下來創建osd,注意由於我們只是測試,故沒有使用單獨的磁盤作為journal,實際在生產環境下,需要配備SSD分區作為journal,能夠最大化IO吞吐量。

ceph-deploy osd create osd_server_1:sdb ceph-deploy osd create osd_server_2:sdb
  • (9)配置admin節點
    admin節點同時也作為我們的client節點,需要拷貝其他節點的配置文件以及密鑰,使得不需要指定mon地址以及用戶信息就可以直接管理我們的ceph集群,執行以下命令即可:
ceph-deploy admin admin_server mon_server osd_server_1 osd_server_2 sudo chmod +r /etc/ceph/ceph.client.admin.keyring # 保證具有讀取的密鑰的權限

(10)配置mgr
運行ceph health,打印:
HEALTH_WARN no active mgr
自從ceph 12開始,manager是必須的。應該為每個運行monitor的機器添加一個mgr,否則集群處於WARN狀態。(具體可以參考Luminous的release日志)
在mon_server上創建名稱為mon_mgr的mgr服務
ceph-deploy mgr create mon_server:mon_mgr
查看狀態:

hcy@admin_server:~/my-cluster$ ceph health HEALTH_OK hcy@admin_server:~/my-cluster$ ceph -s cluster: id: 7981a8fc-378d-4564-95cf-e464d46bdd38 health: HEALTH_OK services: mon: 1 daemons, quorum mon_server mgr: mon_mgr(active) osd: 2 osds: 2 up, 2 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 bytes usage: 2108 MB used, 28409 MB / 30517 MB avail pgs: 
  • (11)訪問dashboard
    啟用dashboard(mon_server節點)

ceph mgr module enable dashboard
通過 http://192.168.31.132:7000 訪問dashboard

dashboard的port默認為7000,可以執行ceph config-key set mgr/dashboard/server_port $PORT修改port。
也可以執行ceph config-key set mgr/dashboard/server_addr $IP指定dashboard的訪問IP。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM