溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mkcephfs如何創建集群

發布時間:2021-12-17 10:18:35 來源:億速云 閱讀:204 作者:小新 欄目:云計算

這篇文章給大家分享的是有關mkcephfs如何創建集群的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

$0指的就是mkcephfs

1. 校驗conf文件,并創建隨機的臨時目錄:

dir = /tmp/mkcephfs.jYWWOaxaTa

2 .執行 :$0 --prepare-monmap -d $dir -c $conf

1) 得到mon列表、mon的id以及mon的地址 :

mons=`$CCONF -c $conf -l mon | egrep -v '^mon$' | sort`

id=`echo $name | cut -c 4- | sed 's/^\\.//'`

get_conf addr "" "mon addr"

那么args:args =  --add 0 192.168.100.61:6789

2) 在$dir/monmap中創建monmap

$BINDIR/monmaptool --create --clobber $args --print $monmap || exit 1

在此之中,生成了fsid,并將 epoch 0 寫入 /tmp/mkcephfs.jYWWOaxaTa/monmap

3) 復制ceph.conf文件:

cp $conf $dir/conf

至此,$0 --prepare-monmap -d $dir -c $conf 命令執行結束。

3. 只取出osd_list和mds_lilst組成name_list, 遍歷name_llist并執行:

1)如果為遠程主機,那么先調用scp推送conf 和monmap 到遠程主機的臨時目錄 $host:$rdir:

rdir=`mktemp -u /tmp/mkfs.ceph.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`

2)do_root_cmd "$0 -d $rdir --init-daemon $name"

s1. 檢查/var/run/ceph/$name.pid和/var/run/ceph/$name.asok,并創建相應的目錄

s2 .如果$name的$type為osd,則:

$BINDIR/ceph-osd -c $conf --monmap $dir/monmap -i $id --mkfs --mkkey

get_conf osd_data "/var/lib/ceph/osd/ceph-$id" "osd data"

get_conf osd_keyring "$osd_data/keyring" "keyring"

$BINDIR/ceph-authtool -p -n $name $osd_keyring > $dir/key.$name

s3. 如果$type為mds,則:

get_conf mds_data "/var/lib/ceph/mds/ceph-$id" "mds data"

get_conf mds_keyring "$mds_data/keyring" "keyring"

test -d $mds_data || mkdir -p $mds_data

echo "creating private key for $name keyring $mds_keyring"

$BINDIR/ceph-authtool --create-keyring --gen-key -n $name $mds_keyring

$BINDIR/ceph-authtool -p -n $name $mds_keyring > $dir/key.$name

3) 如果帶有--mkfs參數,那么同時格式化分區

do_root_cmd "$0 -d $rdir --prepare-osdfs $name"

4)如果為遠程主機,從遠程節點收集keys 

 scp -q $host:$rdir/key.$name $dir

4.  準備monitors,執行$0 -d $dir --prepare-mon $moreargs :

此時,moreargs已經包含了更多參數:numosd osdmap crushmapsrc  crushmap

1)如果useosdmap不為空,那么使用useosdmap:cp $useosdmap $dir/osdmap,否則根據conf文件創建通用的osdmap:

$BINDIR/osdmaptool --create-from-conf $dir/osdmap -c $conf

2) 得到crushmapsrc  :

get_conf crushmapsrc "" "crush map src" mon global

如果$crushmapsrc不為空,則根據crushmapsrc得到一個map文件,保存為$dir/crushmap:

$BINDIR/crushtool -c $crushmapsrc -o $dir/crushmap

3)得到crushmap:

get_conf crushmap "$usecrushmap" "crush map" mon global

如果$crushmap 不為空,則將$crushmap導入到$dir/crushmap:

$BINDIR/osdmaptool --import-crush $crushmap $dir/osdmap

4)產生admin keyring,保存到$dir/keyring.admin:

$BINDIR/ceph-authtool --create-keyring --gen-key -n client.admin $dir/keyring.admin

5)創建初始的monitor keyring:

s1.    cp $dir/keyring.admin $dir/keyring.mon

s2. $BINDIR/ceph-authtool -n client.admin --set-uid=0 \

--cap mon 'allow *' \

--cap osd 'allow *' \

--cap mds 'allow' \

$dir/keyring.mon

s3. $BINDIR/ceph-authtool --gen-key -n mon. $dir/keyring.mon --cap mon 'allow *'

6) 遍歷$dir/key.*:

如果ktype為osd:

  $BINDIR/ceph-authtool -n $kname --add-key $secret $dir/keyring.mon \

--cap mon 'allow rwx' \

--cap osd 'allow *'

如果type為mds:

   $BINDIR/ceph-authtool -n $kname --add-key $secret $dir/keyring.mon \

--cap mon "allow rwx" \

--cap osd 'allow *' \

--cap mds 'allow'

5.遍歷mon_list,并執行:

1)推送配置文件

如果為遠程主機,先推送本地的$dir/* 到$rdir :

rdir=`mktemp -u /tmp/mkfs.ceph.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`

否則如果是本地主機,則cp $dir/conf /etc/ceph/ceph.conf

2)開始啟動mon daemon:

do_root_cmd "$0 -d $rdir --init-daemon $name"

s1. 檢查/var/run/ceph/$name.pid和/var/run/ceph/$name.asok,并創建相應的目錄

s2.此時 $type為mon,則:

get_conf mon_data "/var/lib/ceph/mon/ceph-$id" "mon data"

mkdir -p "$mon_data"

$BINDIR/ceph-mon -c $conf --mkfs -i $id --monmap $dir/monmap --osdmap $dir/osdmap -k $dir/keyring.mon

6 .得到adminkerying:

get_conf adminkeyring "/etc/ceph/keyring" "keyring" global

cp $dir/keyring.admin $adminkeyring

感謝各位的閱讀!關于“mkcephfs如何創建集群”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女