Ceph部署

1、首先獲得相應的部署資源,多臺主機或相應數量的虛擬機資源

示例:

Ip Hostname 節點
10.10.21.54 admin 部署節點
10.10.21.55 node1 MON節點
10.10.21.56 node2 OSD0節點
10.10.21.57 node3 OSD1節點

2、ifconfig查看基本網絡配置信息,嘗試ping連外網如:ping www.baidu.com

問題1:執行ifconfig命令,無相應的輸出響應

一般純淨的Centos7系統會出現上述這個問題
顯示:ifconfig Command not found
解決:下載相應的NET管理工具:net-tools
那麼首先需要在/etc/yum.repo/目錄下創建如:Centos-local.repo的源庫下載腳本

這裏寫圖片描述

注:若當前源庫目錄下有其它的腳本,則最好將上圖示priority置0 使之遍歷優先級最高

然後執行 # yum install net-tools*
最後執行 ifconfig命令便可看到熟悉的信息:

這裏寫圖片描述

問題2:ping www.baidu.com 不通,即不能實現外網鏈接

解決:若是企業有MAC限制,想在公司上外網,首先解決MAC限制,若是虛擬機不能有MAC衝突的問題。之後還不能實現外網鏈接,則需添加DNS解析
首先:vi /etc/sysconfig/network-scripts/ifcfg-eno16777984 (本人配置信息)
添加:DNS1=10.10.10.1
若有MAC衝突可修改HWADDR或MACADDR項,配置如下:

這裏寫圖片描述

3、在10.10.21.54主機(管理點)上以root用戶模式完成以下操作

  1. 修改主機名,以便後面切換部署時識別相應節點
    配置:
    # vi /etc/hostname 修改主機名 這裏命名爲admin

    這裏寫圖片描述

    # vi /etc/hosts 修改127.0.0.1 後主機名爲admin
    並添加如下信息:
    10.10.21.54 admin
    10.10.21.55 node1
    10.10.21.56 node2
    10.10.21.57 node3

    這裏寫圖片描述

  2. 創建用戶並修改主機名

    • 切換到各個主機上創建ceph用戶 命名:ceph
      # ssh username@host-serverip 如username: root host-serverip: 10.10.21.55
      # useradd –d /home/ceph –m ceph
      # passwd ceph
      $ exit
    • exit前修改各個主機名稱,實現步驟同理(1)示
      測試:ping xxx節點

      這裏寫圖片描述

    • 切換至各個Ceph節點的ceph用戶,爲用戶增加root權限
      # ssh username@hostname 如:ssh ceph@node1
      $ echo “ceph ALL=(root) NOPPASSWD:ALL” | sudo tee /etc/sudoers.d/ceph
      $ sudochmod 0440 /etc/sudoers.d/ceph
      $ exit

    • 實現ssh無密碼登錄

      • 切換至ceph用戶,生成公鑰以及私鑰於當前用戶.ssh目錄下,id_rs is_rsa.pub
        # ssh ceph@admin
        $ ssh-keygen
        $ exit
      • exit前將生成的密鑰拷貝到各個Ceph節點的ceph用戶的 ~/.ssh/目錄下
        $ ssh-copy-id ceph@node1
        $ ssh-copy-id ceph@node2
        $ ssh-copy-id ceph@node3
    • admin主機上添加~/.ssh/config配置文件 注:並非ceph用戶

      這裏寫圖片描述

4、創建集羣

  1. 在admin主機切換至ceph用戶,創建文件夾
    # ssh ceph@admin
    $ mkdir my-cluster
    $ cd my-cluster
  2. ceph-deploy部署集羣 注:使用ceph-deploy部署集羣均在my-cluster目錄中

    • 更新軟件源並安裝ceph-deploy工具:
      $ sudo yum update && sudo install ceph-deploy
    • 同步每臺主機的時間,需切換至每個節點:
      $ ssh {node} 如:ssh node1
      $ sudo yum install ntp
      $ sudo yum install openssh-server (如果有必要可安裝)
    • 清除之前的配置數據:
      卸載ceph:
      $ ceph-deploy uninstall admin node1 node2 node3
      清除遠程主機/var/lib/ceph /etc/ceph中的包和數據
      $ ceph-deploy purgeadmin node1 node2 node3
      清除/var/lib/ceph及/etc/ceph下ceph目錄及以下內容全部:
      $ ceph-deploy purgedata admin node1 node2 node3
      清除my-cluster目錄中的認證密鑰文件:
      $ ceph-deploy forgetkeys
    • 關閉所有節點的防火牆及安全防護項,切換到所有節點執行:
      $ ssh {node} 如:ssh node1
      $ sudo systemctl stop firewalld
      $ sudo setenforce 0
    • 之後就可正真的來實現創建集羣:
      $ ceph-deploy new node1
      成功執行後當前目錄增加三個文件:

      這裏寫圖片描述

  3. 系統默認的osd pool的爲3 目前osd爲2 即需修改默認的副本數爲2
    $ vi ./ceph.conf 添加:osd pool default size=2

    這裏寫圖片描述

  4. 部署安裝ceph
    $ ceph-deploy install admin node1 node2 node3
    安裝成功後:

    這裏寫圖片描述

  5. 創建Ceph mon
    $ ceph-deploy mon create-initial
    若無法創建則使用如下命令:
    $ ceph-deploy mon create node1
    $ ceph-deploy gatherkeys node1
    成功後當前目錄ls -l

    這裏寫圖片描述

  6. 創建兩個osd

    • 首先切換到node2中ceph用戶,創建OSD0
      $ ssh ceph@node2
      df –mh 查看可知sdc可用,故可將sdc xfs格式化 並實現掛載
      $ sudo mkfs.xfs –f /dev/sdc
      $ sudo mkdir /var/lib/ceph/osd/osd-0
      $ sudo mount /dev/sdc /var/lib/ceph/osd/osd-0
      $ exit
    • 同理創建OSD1
      $ ssh ceph@node3
      $ sudo mkfs.xfs –f /dev/sdc
      $ sudo mkdir /var/lib/ceph/osd/osd-1
      $ sudo mount /dev/sdc /var/lib/ceph/osd/osd-1
      $ exit
  7. 準備並激活osd
    $ ceph-deploy osd prepare node2: /var/lib/ceph/osd/osd-0
    node3: /var/lib/ceph/osd/osd-1
    $ ceph-deploy osd activate node2: /var/lib/ceph/osd/osd-0
    node3: /var/lib/ceph/osd/osd-1

  8. 實現拷貝配置文件以及key文件
    $ ceph-deploy admin admin node1 node2 node3
  9. 爲ceph.client.admin.keyring添加可讀權限
    通常管理部署節點和監控節點須得設置,以便於查看集羣狀態。OSD節點設置與否,看能給予的權限。命令如下:
    $ sudo chmod +r /etc/ceph/ceph.client.admin.keyring
  10. 查看集羣狀態

    • 集羣整體狀態:ceph –s

      這裏寫圖片描述

    • 集羣OSD狀態:ceph osd tree

      這裏寫圖片描述

    • ceph {xxx} dump 如:ceph osd dump; ceph mon dump; ceph mds dump ceph osd dump

      這裏寫圖片描述

    • 集羣動態部署:ceph –w
      這裏寫圖片描述

    • 查看mon狀況
      $ sudo mon mon.{node} mon_status 如:node3 爲mon節點

      這裏寫圖片描述

  11. 操作OSD

    • 將OSD踢出集羣out 並實現數據重新均衡
      $ ceph osd out osd.2
    • 停止OSD設備 (需切換到當前節點中,實現osd的停止)

      這裏寫圖片描述

    • 從CRUSH中移除
      $ ceph osd crush remove osd.2

      這裏寫圖片描述

    • 從認證中刪除
      $ ceph auth del osd.2

      這裏寫圖片描述

    • 刪除osd
      $ ceph osd rm 2

5. 附錄(問題)

*問題:添加新osd集羣試圖實現均衡失敗後,集羣不正常

情景:
    集羣:[(osd pool default size = 2) admin node1(mon) node2(osd0) node3(osd1) ]
    創建後 集羣active+clean 處於正常狀況,之後向node1節點添加osd2 添加成功後:
開始時:osd2 處於down + in狀態
一段時間後:osd2處於 up + in 同時使得 osd1處於 down + out    
再之後顯示如下:

這裏寫圖片描述

原因:

  1. 可能是系統爲防止集羣崩潰,mon的防火牆會自行啓動,使得其它的osd節點無法訪問mon節點(注:並非是說ping不同)
  2. 有些軟件(進程)的啓動需要依賴防火牆去實現解決:

解決:

  1. 此時首先關閉firewalld:
    $ sudo systemctl stop firewalld
    $ firewall-cmd –-state
    這裏寫圖片描述

  2. 嘗試重新啓動ceph集羣,看是否能夠起來(各個節點均執行),命令:
    $ sudo service ceph start

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章