CephFS自動化部署腳本

前提

  1. 主機(jī)為CentOS 7.2及以上
  2. 預(yù)裝ceph版本為ceph-luminous 12.2.5
  3. 主節(jié)點(diǎn)可無密訪問其他兩個節(jié)點(diǎn)
  4. 搭建3臺主機(jī)形成的ceph cluster及cephfs
  5. 主節(jié)點(diǎn)配置本地ceph yum源
    配置詳情如下:
節(jié)點(diǎn) 安裝組件
主節(jié)點(diǎn) ceph-deploy & mon & mgr & osd & ntp &mds &httpd & createrepo
從節(jié)點(diǎn) mon & mgr & osd & ntp &mds
從節(jié)點(diǎn) mon & mgr & osd & ntp &mds

目錄結(jié)構(gòu)

[root@ceph-1 deploy]# ll
total 132
-rw-r--r-- 1 root root 97527 Jun 21 17:09 deploy.log
-rwxr-xr-x 1 root root  4288 Jun 21 17:02 deploy.sh
drwxr-xr-x 2 root root  4096 Jun 21 16:54 ntp
-rwxr-xr-x 1 root root    99 Jun 21 10:43 part.sh
drwxr-xr-x 2 root root  4096 Jun 20 15:57 py
drwxr-xr-x 2 root root  4096 Jun 20 10:46 rpm
drwxr-xr-x 2 root root  4096 Jun 21 16:39 test
drwxr-xr-x 2 root root  4096 Jun 21 16:54 yum
  1. rpm存放的是ceph相關(guān)的rpm包舟奠,用于建立本地源轴合,可參見搭建ceph本地源下載相關(guān)的rpm
  2. ntp存放主節(jié)點(diǎn)的ntp.conf和從節(jié)點(diǎn)的ntp1.conf
    ntp.conf如下
driftfile /var/lib/ntp/drift
restrict default nomodify
restrict 127.0.0.1 
restrict ::1

# Enable public key cryptography.
# #crypto
#
includefile /etc/ntp/crypto/pw
#
# # Key file containing the keys and key identifiers used when operating
# # with symmetric key cryptography. 
keys /etc/ntp/keys
#
server 127.127.1.0
fudge 127.127.1.0 stratum 10

ntp1.conf

driftfile /var/lib/ntp/drift
restrict default nomodify
restrict 127.0.0.1 
restrict ::1

# Enable public key cryptography.
#crypto

includefile /etc/ntp/crypto/pw

# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys
  1. yum中包含CentOS-Base.repo,epel.repo和ceph.repo
    CentOS-Base.repo,epel.repo可參見Ceph 部署(Centos7 + Luminous)
    ceph.repo
[ceph]
name=ceph

腳本 deploy.sh

#!/bin/bash
#配置開始
ceph_1_ip="192.168.16.4"#主節(jié)點(diǎn)ip
ceph_1_name="ceph-1"#主節(jié)點(diǎn)主機(jī)名
ceph_2_ip="192.168.16.5"#從節(jié)點(diǎn)ip
ceph_2_name="ceph-2"#從節(jié)點(diǎn)主機(jī)名
ceph_3_ip="192.168.16.6"#從節(jié)點(diǎn)ip
ceph_3_name="ceph-3"#從節(jié)點(diǎn)主機(jī)名
sub_network="192.168.16.0/24"#子網(wǎng)

ceph_1_dev=('vdb' 'vdc')#節(jié)點(diǎn)1 osd 目標(biāo)安裝磁盤
ceph_2_dev=('vdb' 'vdc')#節(jié)點(diǎn)2 osd 目標(biāo)安裝磁盤
ceph_3_dev=('vdb' 'vdc')#節(jié)點(diǎn)3 osd 目標(biāo)安裝磁盤

ceph_1_dev_journal=('vdd1' 'vdd2' 'vdd3' 'vdd4')#節(jié)點(diǎn)1 bluestore db&wal 目標(biāo)安裝磁盤
ceph_2_dev_journal=('vdd1' 'vdd2' 'vdd3' 'vdd4'))#節(jié)點(diǎn)2 bluestore db&wal 目標(biāo)安裝磁盤
ceph_3_dev_journal=('vdd1' 'vdd2' 'vdd3' 'vdd4'))#節(jié)點(diǎn)3 bluestore db&wal 目標(biāo)安裝磁盤
#配置結(jié)束

DEPLOY_DIR=$(cd `dirname $0`; pwd)
echo "$ceph_1_ip $ceph_1_name" >> /etc/hosts
echo "$ceph_2_ip $ceph_2_name" >> /etc/hosts
echo "$ceph_3_ip $ceph_3_name" >> /etc/hosts
ssh root@$ceph_2_name "echo '$ceph_1_ip $ceph_1_name' >> /etc/hosts;echo '$ceph_2_ip $ceph_2_name' >> /etc/hosts;echo '$ceph_3_ip $ceph_3_name' >> /etc/hosts"
ssh root@$ceph_3_name "echo '$ceph_1_ip $ceph_1_name' >> /etc/hosts;echo '$ceph_2_ip $ceph_2_name' >> /etc/hosts;echo '$ceph_3_ip $ceph_3_name' >> /etc/hosts"

#關(guān)閉防火墻
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
ssh root@$ceph_2_name "sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config;setenforce 0"
ssh root@$ceph_3_name "sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config;setenforce 0"

#搭建本地yum源頭
yum install httpd createrepo -y
mkdir -p /var/www/html/ceph/12.2.5
cp $DEPLOY_DIR/rpm/* /var/www/html/ceph/12.2.5
createrepo /var/www/html/ceph/12.2.5

#配置yum
yum clean all
echo "baseurl=http://$ceph_1_ip/ceph/12.2.5" >> $DEPLOY_DIR/yum/ceph.repo
echo "gpgcheck=0" >> $DEPLOY_DIR/yum/ceph.repo
\cp -fr $DEPLOY_DIR/yum/* /etc/yum.repos.d/
yum makecache

ssh root@$ceph_2_name "yum clean all"
ssh root@$ceph_3_name "yum clean all"
scp -r $DEPLOY_DIR/yum/* root@$ceph_2_name:/etc/yum.repos.d/
scp -r $DEPLOY_DIR/yum/* root@$ceph_3_name:/etc/yum.repos.d/ 
ssh root@$ceph_2_name "yum makecache"
ssh root@$ceph_3_name "yum makecache"

#安裝ntp
yum install ntp -y
\cp -fr $DEPLOY_DIR/ntp/ntp.conf /etc/
echo "server $ceph_1_ip" >> $DEPLOY_DIR/ntp/ntp1.conf
systemctl enable ntpd
systemctl restart ntpd

ssh root@$ceph_2_name "yum install ntp -y"
ssh root@$ceph_3_name "yum install ntp -y"
scp -r $DEPLOY_DIR/ntp/ntp1.conf root@$ceph_2_name:/etc/ntp.conf
scp -r $DEPLOY_DIR/ntp/ntp1.conf root@$ceph_3_name:/etc/ntp.conf
ssh root@$ceph_2_name "systemctl enable ntpd;systemctl restart ntpd"
ssh root@$ceph_3_name "systemctl enable ntpd;systemctl restart ntpd"

#安裝ceph
yum install ceph -y
ssh root@$ceph_2_name "yum install ceph -y"
ssh root@$ceph_3_name "yum install ceph -y"

#安裝ceph-deploy
yum install ceph-deploy -y

#部署ceph
mkdir ~/cluster
cd ~/cluster
CLUSTER_DIR=$(cd `dirname $0`; pwd)
ceph-deploy new $ceph_1_name $ceph_2_name $ceph_3_name
echo "public_network=$sub_network" >> ceph.conf
#echo "osd_crush_update_on_start = false" >> ceph.conf

ceph-deploy mon create-initial
ceph-deploy admin $ceph_1_name $ceph_2_name $ceph_3_name

#配置osd
index=0
for dev_name in ${ceph_1_dev[@]}
do
ceph-volume lvm zap /dev/$dev_name
ceph-deploy osd create $ceph_1_name --bluestore --data /dev/$dev_name --block-db /dev/${ceph_1_dev_journal[$index]} --block-wal /dev/${ceph_1_dev_journal[$index+1]}
index=$[$index+2]
done
index=0
for dev_name in ${ceph_2_dev[@]}
do
ssh root@$ceph_2_name "ceph-volume lvm zap /dev/$dev_name"
ceph-deploy osd create $ceph_2_name --bluestore --data /dev/$dev_name --block-db /dev/${ceph_2_dev_journal[$index]} --block-wal /dev/${ceph_2_dev_journal[$index+1]}
index=$[$index+2]
done
index=0
for dev_name in ${ceph_3_dev[@]}
do
ssh root@$ceph_3_name "ceph-volume lvm zap /dev/$dev_name"
ceph-deploy osd create $ceph_3_name --bluestore --data /dev/$dev_name --block-db /dev/${ceph_3_dev_journal[$index]} --block-wal /dev/${ceph_3_dev_journal[$index+1]}
index=$[$index+2]
done


#配置mgr
ceph-deploy mgr create $ceph_1_name $ceph_2_name $ceph_3_name

#啟動dashboard
ceph mgr module enable dashboard

#部署cephfs
ceph-deploy mds create $ceph_1_name $ceph_2_name $ceph_3_name
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
ceph fs new cephfs cephfs_metadata cephfs_data

mkdir /mnt/mycephfs  
admin_key=`ceph auth get-key client.admin`
admin_key_base64=`ceph auth get-key client.admin |base64`
sleep 5#等待mds部署完成后再mount
mount -t ceph $ceph_1_name:6789,$ceph_2_name:6789,$ceph_3_name:6789:/ /mnt/mycephfs -o name=admin,secret=$admin_key

執(zhí)行腳本

nohup ./deploy.sh > deploy.log 2>&1 &
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒿叠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杏节,更是在濱河造成了極大的恐慌扒披,老刑警劉巖兵睛,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肯骇,死亡現(xiàn)場離奇詭異,居然都是意外死亡祖很,警方通過查閱死者的電腦和手機(jī)笛丙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來假颇,“玉大人若债,你說我怎么就攤上這事〔鹑冢” “怎么了蠢琳?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長镜豹。 經(jīng)常有香客問我傲须,道長,這世上最難降的妖魔是什么趟脂? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任泰讽,我火速辦了婚禮,結(jié)果婚禮上昔期,老公的妹妹穿的比我還像新娘已卸。我一直安慰自己烛芬,他們只是感情好峰伙,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鞍匾,像睡著了一般般贼。 火紅的嫁衣襯著肌膚如雪愧哟。 梳的紋絲不亂的頭發(fā)上奥吩,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音蕊梧,去河邊找鬼霞赫。 笑死,一個胖子當(dāng)著我的面吹牛肥矢,可吹牛的內(nèi)容都是我干的端衰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼甘改,長吁一口氣:“原來是場噩夢啊……” “哼靴迫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起楼誓,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎名挥,沒想到半個月后疟羹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡禀倔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年榄融,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片救湖。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡愧杯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鞋既,到底是詐尸還是另有隱情力九,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布邑闺,位于F島的核電站跌前,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏陡舅。R本人自食惡果不足惜抵乓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望靶衍。 院中可真熱鬧灾炭,春花似錦、人聲如沸颅眶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涛酗。三九已至掏缎,卻和暖如春皱蹦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眷蜈。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工沪哺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酌儒。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓辜妓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親忌怎。 傳聞我的和親對象是個殘疾皇子籍滴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 近期在linux上搭建了用于分布式存儲的----GlusterFS和Ceph這兩個開源的分布式文件系統(tǒng)。 前言--...
    ZNB_天玄閱讀 2,789評論 0 0
  • 系統(tǒng)環(huán)境: centos73.10.0-514.26.2.el7.x86_64 機(jī)器數(shù)量:五臺 硬盤:四塊一塊為系...
    think_lonely閱讀 4,673評論 0 5
  • 本腳本是zabbix_agent的自動安裝腳本榴啸,在centos6.4測試通過孽惰,并用于生產(chǎn)環(huán)境,使用前請修改zabb...
    think_lonely閱讀 936評論 0 1
  • 軟件包基礎(chǔ) 包管理器 二進(jìn)制應(yīng)用程序的組成部分:二進(jìn)制文件鸥印,庫文件勋功,配置文件,幫助文件 程序包管理器 debian...
    毛利卷卷發(fā)閱讀 1,226評論 0 2
  • js數(shù)據(jù)類型 js定義了6種數(shù)據(jù)類型库说,數(shù)值狂鞋、字符串、布爾值稱為原始數(shù)據(jù)類型的值即基本數(shù)據(jù)類型潜的。將對象稱為復(fù)雜類型的...
    傾國傾城的小餅干閱讀 194評論 0 0