Ceph 叢集的擴充,Ceph叢集擴充

來源:互聯網
上載者:User

Ceph 叢集的擴充,Ceph叢集擴充
前文講述了如何建立一個叢集,結構如下,本文講述如何對該叢集進行擴充

IP hostname 描述
192.168.40.106 dataprovider 部署管理節點
192.168.40.107 mdsnode MON節點
192.168.40.108 osdnode1 OSD節點
192.168.40.148 osdnode2 OSD節點
擴充主要包括以下幾點:
  1. 在mdsnode上添加OSD進程以及CephMetadata服務
  2. 在osdnode1,osdnode2節點上添加Ceph Monitor服務
  3. 添加一個新的OSD節點osdnode3
最終結果如下:
IP hostname 描述
192.168.40.106 dataprovider 部署管理節點
192.168.40.107 mdsnode MDS,MON節點,OSD節點
192.168.40.108 osdnode1 OSD節點,MON節點
192.168.40.148 osdnode2 OSD節點,MON節點
192.168.40.125 osdnode3 OSD節點
擴充MON節點的OSD功能
  • 在dataprovider上切換到leadorceph使用者,並進入/home/leadorceph/my-cluster目錄
  • 添加mdsnode節點的OSD服務
    ssh node1    sudo mkdir /var/local/osd2    exit
  • 使用ceph-deploy命令建立osd.
 
ceph-deploy --overwrite-conf osd prepare mdsnode:/var/local/osd2
  • 啟用剛才建立的osd
ceph-deploy osd activate mdsnode:/var/local/osd2

當執行完上面的命令後,Ceph會重新調整整個叢集,並且會將PG遷移到新的OSD上,可以通過ceph -w發現叢集的狀態發生了變化

增加一個新的OSD節點

在已有的MON節點上添加完OSD功能後,接下來將在一個全新的osdnode3上增加OSD的功能

  • 修改dataprovider節點的/etc/hosts資訊

添加192.168.40.125 osdnode3到其/etc/hosts檔案中

  • 在osdnode3上執行下列命令,其描述請參考“Centos6.5下Ceph儲存叢集的搭建 ”
    yum install -y ntp ntpdate ntp-doc      yum install -y openssh-server     sudo useradd -d /home/leadorceph -m leadorceph    sudo passwd leadorceph    echo "leadorceph  ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/leadorceph    sudo chmod 0440 /etc/sudoers.d/leadorceph
使用leadorceph使用者的身份執行sudo visudo命令,然後修改Defaults requiretty 為Defaults:ceph !requiretty
  • 在dataprovider節點上將無密碼的SSH key拷貝到osdnode3上
ssh-copy-id leadorceph@osdnode3
  • 在dataprovider上安裝osdnode3的ceph
 ceph-deploy install osdnode3<br style="background-color: inherit;" />
  • 在dataprovider上建立以及啟用osdnode3上的進程
ceph-deploy osd prepare osdnode3:/var/local/osd3ceph-deploy osd activate osdnode3:/var/local/osd3
  • 檢測叢集的狀態


從可以看出,此時pg的數量太少了,每個OSD平均只有16個,所以此時需要添加一些pg
    ceph osd pool set rbd pg_num 100    ceph osd pool set rbd pgp_num 100
添加一個Metadata Server

如果想要使用CephFS,則必須要包含一個metadata server,通過下面的方式來建立metadata 服務:

ceph-deploy mds create mdsnode
添加Ceph Mon

Mon的擴充比較複雜,搞不好會導致整個叢集出錯,所以建議開始的時候對MON做好規劃,盡量不要對其進行修改。

ceph monitor的個數是2n+1(n>=0)個(為奇數),線上上至少3個,只要正常的節點數>=n+1,ceph的paxos演算法能保證系統的正常運行。所以,對於3個節點,同時只能掛掉一個。

  • 修改dataprovider上的ceph.conf檔案,把要添加的MON節點的資訊追加進去,修改如下
    [global]    auth_service_required = cephx    osd_pool_default_size = 2    filestore_xattr_use_omap = true    auth_client_required = cephx    auth_cluster_required = cephx    public_network = 192.168.40.0/24    mon_initial_members = mdsnode,osdnode1,osdnode2    fsid = 1fffdcba-538f-4f0d-b077-b916203ff698    [mon]    mon_addr = 192.168.40.107:6789,192.168.40.108:6789,192.168.40.148:6789    mon_host = mdsnode,osdnode1,osdnode2    debug_mon = 20    [mon.a]    host = mdsnode    addr = 192.168.40.107:6789    [mon.b]    host = osdnode1    addr = 192.168.40.108:6789    [mon.c]    host = osdnode2    addr = 192.168.40.148:6789



  • 執行ceph-deploy mon create osdnode1 osdnode2

當添加完新的節點後,可以通過下面的方式來查詢結果

ceph quorum_status --format json-pretty
儲存以及檢索對象
Ceph用戶端通過最新的cluster map以及CRUSH演算法決定怎麼把一個對象映射到PG中,然後決定如何把該PG映射到OSD上
 
  • 添加對象
echo {Test-data} > testfile.txtrados put test-object-1 testfile.txt --pool=data
  • 驗證對象是否添加成功
rados -p data ls
  • 標出對象的位置
ceph osd map data test-object-1

輸出的資訊可能如下:

osdmap e537 pool 'data' (0) object 'test-object-1' -> pg 0.d1743484 (0.4) -> up [1,0] acting [1,0]
  • 刪除對象
rados rm test-object-1 --pool=data

由於叢集節點的變化,位置的資訊可能會動態發生變化







聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.