iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0
DevOps

30天完成本地部署 kubernetes系列 第 7

使用 Ceph 實現高可用的持久化儲存(2):Ceph 部署環境及工具介紹

  • 分享至 

  • xImage
  •  

部署環境說明

使用在第 4 天建立的 3 台虛擬機器進行部署。

每台虛擬機器均部署 mon、mgr、mds daemon。

因每台虛擬機器均有 3 顆 hdd,使用其中 2 顆 hdd 執行 2 個 osd daemon。

配合 VirtualBox 的 DHCP 設定,將 Ceph 部署於 10.13.13.0/24 網路中。

部署工具

為了簡化部署 Ceph 的難度,將使用 https://hub.docker.com/r/ceph/daemon/ 進行 Ceph 節點的部署。

部署版本為:v3.2.1-stable-3.2-luminous-debian-9-x86_64。

部署 mon daemon

假設要部署的虛擬機器 IP 為 10.13.13.101:

DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
NETWORK=10.13.13.0/24
HOSTIP=10.13.13.101

docker run -d --net=host \
        --restart=always \
        -v /etc/ceph:/etc/ceph \
        -v /var/log/ceph/:/var/log/ceph/ \
        -v /var/lib/ceph/mon:/var/lib/ceph/mon \
        -v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
        -v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
        -v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
        -v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
        -e MON_IP=$HOSTIP \
        -e CEPH_PUBLIC_NETWORK=$NETWORK \
        --name mon \
        ${DOCKERIMAGE} mon 

部署 mgr daemon

在所有虛擬機器上執行以下指令。

DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64

docker run -d --net=host \
        --restart=always \
        -v /etc/ceph:/etc/ceph \
        -v /var/log/ceph/:/var/log/ceph/ \
        -v /var/lib/ceph/mgr:/var/lib/ceph/mgr \
        -v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
        -v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
        -v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
        -v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
        --name mgr \
        ${DOCKERIMAGE} mgr

部署 osd daemon

在所有虛擬主機上執行以下指令:

DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64

for DEV in /dev/sdb /dev/sdc
do
    OSDNAME=osd${DEV//\//-}
    docker run -d --net=host \
            --pid=host \
            --restart=always \
            --privileged=true \
            -v /etc/ceph:/etc/ceph \
            -v /var/log/ceph/:/var/log/ceph/ \
            -v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
            -v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
            -v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
            -v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
            -v /dev/:/dev/ \
            -e OSD_DEVICE=$DEV \
            --name $OSDNAME \
            ${DOCKERIMAGE} osd
done

部署 mds daemon

準備完 osd 節點後,即可部署 mds daemon,以提供 CephFS 服務。

請注意在部署 mds 時,需決定 pg num。請參考 https://ceph.io/pgcalc/ 計算所需的 pg 數。

在所有虛擬機器上執行以下指令:

DOCKERIMAGE=ceph/daemon:v3.2.1-stable-3.2-luminous-debian-9-x86_64
PGNUM=64

docker run -d --net=host \
        --restart=always \
        -v /etc/ceph:/etc/ceph \
        -v /var/log/ceph/:/var/log/ceph/ \
        -v /var/lib/ceph/mds:/var/lib/ceph/mds \
        -v /var/lib/ceph/bootstrap-mds:/var/lib/ceph/bootstrap-mds \
        -v /var/lib/ceph/bootstrap-osd:/var/lib/ceph/bootstrap-osd \
        -v /var/lib/ceph/bootstrap-rbd:/var/lib/ceph/bootstrap-rbd \
        -v /var/lib/ceph/bootstrap-rgw:/var/lib/ceph/bootstrap-rgw \
        -e CEPHFS_CREATE=1 \
        -e CEPHFS_DATA_POOL_PG=$PGNUM \
        -e CEPHFS_METADATA_POOL_PG=$PGNUM \
        --name mds \
        ${DOCKERIMAGE} mds

上一篇
使用 Ceph 實現高可用的持久化儲存(1):Ceph 基本介紹
下一篇
使用 Ceph 實現高可用的持久化儲存(3):部署高可用 Ceph mon cluster
系列文
30天完成本地部署 kubernetes30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言