Ceph分佈式存儲(luminous)部署文檔-ubuntu18-04

Ceph分佈式存儲(luminous)部署文檔

環境

ubuntu18.04
ceph version 12.2.7 luminous (stable)node

三節點
配置以下
node1:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)
node2:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)
node3:1U,1G mem,20G disk,兩塊空硬盤(sdb,sdc)linux

role hostname ip
dep(部署節點) node1 192.168.113.5
mon(監控節點) node1,node2,node3 192.168.113.5,192.168.113.3,192.168.113.4
ods(存儲節點) node1,node2,node3 192.168.113.5,192.168.113.3,192.168.113.4

基本環境搭建(全部節點)

關閉系統 NetworkManager 服務

systemctl stop NetworkManager 臨時關閉  
systemctl disable NetworkManager 永久關閉網絡管理命令

關閉selinux、防火牆

systemctl stop firewalld.service  
systemctl disable firewalld.service  
firewall-cmd --state

時間同步

注意
ntp同步時間失敗,多是上層路由封鎖udp123端口,
咱們只能經過tcp來同步時間,具體操做以下
查看時間服務器的時間:bootstrap

rdate time-b.nist.gov

設置時間和時間服務器同步:
rdate -s time-b.nist.govubuntu

下面有其餘的ntp服務器地址bash

time.nist.gov  
time-b.nist.gov  
216.118.116.105  
rdate.darkorb.net  
202.106.196.19  
time-b.timefreq.bldrdoc.gov  
ntp1.aliyun.com

設置hostname

hostnamectl set-hostname node1  
hostnamectl set-hostname node2  
hostnamectl set-hostname node3

修改/etc/hosts文件服務器

192.168.113.3 node1  
192.168.113.4 node2  
192.168.113.5 node3

設置ssh免密登陸

ssh-keygen 一路回車  
ssh-copy-id node{1,2,3}

驗證一下
ssh node2網絡

更新重啓

apt update -y && rebootssh

ceph部署

驗證網絡

驗證全部節點可以ping通外網tcp

mark

安裝ceph-deploy

apt update -y分佈式

apt install ceph-deploy -y

建立集羣

若是在某些地方碰到麻煩,想從頭再來,能夠用下列命令清除配置:

ceph-deploy purgedata node1 node2 node3
ceph-deploy forgetkeys

用下列命令能夠連 Ceph 安裝包一塊兒清除:

ceph-deploy purge node1 node2 node3

若是執行了 purge ,你必須從新安裝 Ceph 。

在管理節點上,進入剛建立的放置配置文件的目錄,用 ceph-deploy 執行以下步驟。

  1. 建立集羣。

    ceph-deploy new node1 node2 node3

    在當前目錄下用 lscat 檢查 ceph-deploy 的輸出,應該有一個 Ceph 配置文件、一個 monitor 密鑰環和一個日誌文件。詳情見 ceph-deploy new -h

  2. 把 Ceph 配置文件裏的默認副本數從 3 改爲 1 ,這樣只有兩個 OSD 也能夠達到 active + clean 狀態。把下面這行加入 [global] 段:

    osd pool default size = 1
  3. 若是你有多個網卡,能夠把 public network 寫入 Ceph 配置文件的 [global] 段下。詳情見網絡配置參考

    public network = {ip-address}/{netmask}

    mark

  4. 安裝 Ceph 。

    ceph-deploy install node1 node2 node3

    ceph-deploy 將在各節點安裝 Ceph 。 注:若是你執行過 ceph-deploy purge ,你必須從新執行這一步來安裝 Ceph 。

  5. 配置初始 monitor(s)、並收集全部密鑰:

    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

    增長/刪除 OSD

    新增和拆除 Ceph 的 OSD 進程相比其它兩種要多幾步。 OSD 守護進程把數據寫入磁盤和日誌,因此你得相應地提供一 OSD 數據盤和日誌分區路徑(這是最多見的配置,但你能夠按需調整)。

    從 Ceph v0.60 起, Ceph 支持 dm-crypt 加密的硬盤,在準備 OSD 時你能夠用 --dm-crypt 參數告訴 ceph-deploy 你想用加密功能。也能夠用 --dmcrypt-key-dir 參數指定 dm-crypt 加密密鑰的位置。

    在投建一個大型集羣前,你應該測試各類驅動器配置來衡量其吞吐量。詳情見數據存儲

    列舉磁盤

    執行下列命令列舉一節點上的磁盤:

    ceph-deploy disk list {node-name [node-name]...}

    擦淨磁盤

    用下列命令擦淨(刪除分區表)磁盤,以用於 Ceph :

    ceph-deploy disk zap {osd-server-name}:{disk-name}
    ceph-deploy disk zap osdserver1:sdb

    這會刪除全部數據。

    準備 OSD

    建立集羣、安裝 Ceph 軟件包、收集密鑰完成後你就能夠準備 OSD 並把它們部署到 OSD 節點了。若是你想確認某磁盤或擦淨它,參見列舉磁盤擦淨磁盤

    ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
    ceph-deploy osd prepare osdserver1:sdb:/dev/ssd
    ceph-deploy osd prepare osdserver1:sdc:/dev/ssd

    prepare 命令只准備 OSD 。在大多數操做系統中,硬盤分區建立後,不用 activate 命令也會自動執行 activate 階段(經過 Ceph 的 udev 規則)。詳情見激活 OSD

    前例假定一個硬盤只會用於一個 OSD 守護進程,以及一個到 SSD 日誌分區的路徑。咱們建議把日誌存儲於另外的驅動器以最優化性能;你也能夠指定一單獨的驅動器用於日誌(也許比較昂貴)、或者把日誌放到 OSD 數據盤(不建議,由於它有損性能)。前例中咱們把日誌存儲於分好區的固態硬盤。

    Note

    在一個節點運行多個 OSD 守護進程、且多個 OSD 守護進程共享一個日誌分區時,你應該考慮整個節點的最小 CRUSH 故障域,由於若是這個 SSD 壞了,全部用其作日誌的 OSD 守護進程也會失效。

    激活 OSD

    準備好 OSD 後,能夠用下列命令激活它。

    ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
    ceph-deploy osd activate osdserver1:/dev/sdb1:/dev/ssd1
    ceph-deploy osd activate osdserver1:/dev/sdc1:/dev/ssd2

    activate 命令會讓 OSD 進入 upin 狀態,此命令所用路徑和 prepare 相同。

    建立 OSD

    你能夠用 create 命令一次完成準備 OSD 、部署到 OSD 節點、並激活它。 create 命令是依次執行 prepareactivate 命令的捷徑。

    ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}]
    ceph-deploy osd create osdserver1:sdb:/dev/ssd1
  6. ceph-deploy 把配置文件和 admin 密鑰拷貝到管理節點和 Ceph 節點,這樣你每次執行 Ceph 命令行時就無需指定 monitor 地址和 ceph.client.admin.keyring 了。

    ceph-deploy admin {admin-node} {ceph-node}

    例如:

    ceph-deploy admin admin-node node1 node2 node3

    ceph-deploy 和本地管理主機( admin-node )通訊時,必須經過主機名可達。必要時可修改 /etc/hosts ,加入管理主機的名字。

  7. 確保你對 ceph.client.admin.keyring 有正確的操做權限。

    sudo chmod +r /etc/ceph/ceph.client.admin.keyring
  8. 檢查集羣的健康情況。

    ceph health
  • 添加mgr
ceph-deploy mgr create node1  
ceph-deploy mgr create node2  
ceph-deploy mgr create node3

啓用dashboard (在mon節點)

ceph mgr module enable dashboard

http://ip:7000 訪問dashboard

設置dashboard的ip和端口

ceph config-key put mgr/dashboard/server_addr 192.168.246.132  
ceph config-key put mgr/dashboard/server_port 7000  
systemctl restart ceph-mgr@node1

建立POOL

ceph osd pool create volumes  
ceph osd pool create images  
ceph osd pool create vms

初始化pool

rbd pool init volumes  
rbd pool init images  
rbd pool init vms

檢查ceph的相關命令

ceph health  
ceph -s   
ceph osd tree  
ceph df  
ceph mon stat  
ceph osd stat  
ceph pg stat  
ceph osd lspools  
ceph auth list
相關文章
相關標籤/搜索