kolla-ansible 部署openstack(vmware缩抡,多節(jié)點(diǎn),ceph存儲(chǔ))

前言

此文章基于已部署過(guò)單節(jié)點(diǎn)環(huán)境包颁,有一定的基礎(chǔ)概念瞻想。
單節(jié)點(diǎn)部署參考:http://www.reibang.com/p/73598a5cd00b
全程使用root權(quán)限操作。
已測(cè)試queens版本娩嚼。3節(jié)點(diǎn)蘑险,其中2個(gè)節(jié)點(diǎn)只部署存儲(chǔ)和網(wǎng)絡(luò)。存儲(chǔ)后端使用ceph岳悟。

環(huán)境準(zhǔn)備

整體介紹

基于vmware虛擬機(jī)搭建平臺(tái)佃迄。
3臺(tái)虛擬機(jī)。分別為node01(選為部署節(jié)點(diǎn))贵少,node02呵俏,node03。
由于性能問(wèn)題滔灶,node02和node03只作為存儲(chǔ)和網(wǎng)絡(luò)節(jié)點(diǎn)普碎。
鏡像均使用CentOS-7-x86_64-Minimal-1708.iso。

  • node01:
    1. 1張nat網(wǎng)卡(ens33):本機(jī)網(wǎng)卡
    2. 1張nat網(wǎng)卡(ens34):openstack彈性ip使用的外網(wǎng)網(wǎng)卡
    3. 1張host-only網(wǎng)卡(ens35):openstack管理網(wǎng)網(wǎng)卡
    4. 額外添加一塊50G硬盤(pán)作為ceph存儲(chǔ)
    5. 6G內(nèi)存录平,2核
  • node02:
    1. 1張nat網(wǎng)卡(ens33):本機(jī)網(wǎng)卡
    2. 1張nat網(wǎng)卡(ens34):openstack彈性ip使用的外網(wǎng)網(wǎng)卡
    3. 1張host-only網(wǎng)卡(ens35):openstack管理網(wǎng)網(wǎng)卡
    4. 額外添加一塊50G硬盤(pán)作為ceph存儲(chǔ)
    5. 2G內(nèi)存随常,1核
  • node03:
    1. 1張nat網(wǎng)卡(ens33):本機(jī)網(wǎng)卡
    2. 1張nat網(wǎng)卡(ens34):openstack彈性ip使用的外網(wǎng)網(wǎng)卡
    3. 1張host-only網(wǎng)卡(ens35):openstack管理網(wǎng)網(wǎng)卡
    4. 額外添加一塊50G硬盤(pán)作為ceph存儲(chǔ)
    5. 2G內(nèi)存潜沦,1核

基礎(chǔ)環(huán)境配置

1. 網(wǎng)卡配置

參考《前言》中的單節(jié)點(diǎn)部署文檔

  • node01:
    1. ens33: 10.10.10.80
    2. ens34: 不配置ip
    3. ens35: 192.168.10.80
  • node02:
    1. ens33: 10.10.10.90
    2. ens34: 不配置ip
    3. ens35: 192.168.10.90
  • node03:
    1. ens33: 10.10.10.95
    2. ens34: 不配置ip
    3. ens35: 192.168.10.95
2. 加速源以及防火墻配置

參考《前言》中的單節(jié)點(diǎn)部署文檔
所有節(jié)點(diǎn)關(guān)閉firewalld

systemctl disable firewalld
systemctl stop firewalld

3個(gè)節(jié)點(diǎn)均配置加速源以及iptables,此文章不配置私有倉(cāng)庫(kù)绪氛。

3. 主機(jī)解析配置

vim /etc/hosts

192.168.10.80 node01
192.168.10.90 node02
192.168.10.95 node03

并且在每個(gè)節(jié)點(diǎn)上分別修改hostname唆鸡,ceph將使用此命令得結(jié)果。
node01 節(jié)點(diǎn)上執(zhí)行:hostname node01
node02 節(jié)點(diǎn)上執(zhí)行:hostname node02
node03 節(jié)點(diǎn)上執(zhí)行:hostname node03

4. 基礎(chǔ)軟件安裝(3節(jié)點(diǎn)均需執(zhí)行)

單節(jié)點(diǎn)環(huán)境當(dāng)中并沒(méi)有手動(dòng)安裝docker枣察,自動(dòng)安裝的版本很老争占。此時(shí)手動(dòng)安裝較新版本的docker(18.09)。
安裝docker:

yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce-18.09.3 -y
systemctl enable docker

配置docker:
vi /usr/lib/systemd/system/docker.service
在[Service]中添加:

MountFlags=shared

重啟docker:

systemctl daemon-reload
systemctl restart docker

安裝其它基礎(chǔ)軟件

yum install -y epel-release 
yum install -y python-pip
pip install -U pip
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python
yum install -y ansible
pip install -U ansible

編輯 ansible配置
vim /etc/ansible/ansible.cfg

[defaults]
host_key_checking=False
pipelining=True
forks=100

安裝kolla-ansible

pip install --ignore-installed PyYAML
pip install kolla-ansible==7.0.0
cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
cp /usr/share/kolla-ansible/ansible/inventory/* /opt/
5. 配置免密登陸

在node01上執(zhí)行如下命令:

  1. 生成公私鑰
ssh-keygen
  1. 復(fù)制部署節(jié)點(diǎn)的公鑰到其它節(jié)點(diǎn)上
    如下命令需輸入密碼序目,注意用戶(hù)使用的是root
ssh-copy-id -i /root/.ssh/id_rsa.pub root@node02
ssh-copy-id -i /root/.ssh/id_rsa.pub root@node03
  1. 測(cè)試ssh
ssh node02
ssh node03
6. 在node01上執(zhí)行臂痕,配置globals.yml

vim /etc/kolla/globals.yml

kolla_base_distro: "centos"  # 基礎(chǔ)容器鏡像版本
kolla_install_type: "source"  # 源碼安裝方式安裝組件
openstack_release: "queens"  # openstack版本,選擇你需要的
network_interface: "ens35"  # 管理網(wǎng)使用得網(wǎng)卡
neutron_external_interface: "ens34"  # public網(wǎng)使用得網(wǎng)卡
kolla_internal_vip_address: "192.168.10.81"  # ha或者keepalived代理的服務(wù)內(nèi)部地址猿涨。
kolla_external_vip_address: "10.10.10.81"  # ha或者keepalived代理的服務(wù)外部地址握童。
enable_cinder: "yes"
enable_horizon: "yes"

# 以下為ceph配置
enable_ceph: "yes"
enable_ceph_rgw: "yes"
enable_ceph_rgw_keystone: "yes"
#ceph_target_max_bytes: ""  # 表示每個(gè)cache pool最大大小。注意叛赚,如果配置了cache盤(pán)澡绩,此項(xiàng)不配置會(huì)導(dǎo)致cache不會(huì)自動(dòng)清空。cache_osd_size*cache_osd_num/replicated/cache_pool_num
#ceph_target_max_objects: "" # 表示cache pool最大的object數(shù)量
ceph_pool_pg_num: 32 # Total PGs = ((Total_number_of_OSD * 100) / pool_count / replicated . 當(dāng)前環(huán)境計(jì)算結(jié)果為32
ceph_pool_pgp_num: 32
glance_backend_ceph: "yes"
glance_backend_file: "no"
cinder_backend_ceph: "yes"
cinder_backup_driver: "ceph"
nova_backend_ceph: "yes"
7. 在node01上執(zhí)行俺附,配置mutinode

這里直接從all-in-one復(fù)制比較方便:

cp /opt/all-in-one /opt/node

替換掉localhost:

sed -i "/^localhost/c node01" /opt/node

修改配置文件
vim /opt/node
將 node02 node03 添加到[network]和[storage]下肥卡。意思為 node02 node03 作為network節(jié)點(diǎn)和storage節(jié)點(diǎn)

8. ceph硬盤(pán)配置

3個(gè)節(jié)點(diǎn)上均有一塊50G得硬盤(pán),在當(dāng)前環(huán)境中為/dev/sdb
在node01上執(zhí)行:

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

在node02上執(zhí)行:

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1

在node03上執(zhí)行:

parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP 1 -1
9. 在node01上執(zhí)行事镣,ceph配置文件

目前安裝kolla-ansible默認(rèn)使用bluestore得ceph步鉴。這里演示使用filestore。需修改文件
vim /usr/share/kolla-ansible/ansible/group_vars/all.yml
修改如下屬性:

ceph_osd_store_type: "filestore"

開(kāi)始部署

kolla-ansible -i /opt/node bootstrap-servers
kolla-ansible -i /opt/node prechecks
kolla-ansible -i /opt/node deploy

結(jié)束部署

查看ceph狀態(tài)
docker exec ceph_mon ceph -s
image.png
基本使用(可參考單節(jié)點(diǎn))
pip install --ignore-installed ipaddress
pip install -U decorator 
pip install python-openstackclient python-glanceclient python-neutronclient
kolla-ansible post-deploy
. /etc/kolla/admin-openrc.sh
openstack service list --long

至此部署結(jié)束璃哟。

openstack網(wǎng)絡(luò)介紹

http://www.reibang.com/writer#/notebooks/31342015/notes/43532637/preview

ceph介紹

參考
https://docs.openstack.org/cinder/rocky/configuration/block-storage/drivers/ceph-rbd-volume-driver.html

ceph基于Reliable Autonomic Distributed Object Store (RADOS)氛琢。RADOS在存儲(chǔ)群集中分配對(duì)象并復(fù)制對(duì)象以實(shí)現(xiàn)容錯(cuò)。
RADOS包含以下主要組件:

  • ceph-osd: Object Storage Device (OSD) Daemon随闪,對(duì)象存儲(chǔ)設(shè)備服務(wù)艺沼。ceph-osd是Ceph分布式文件系統(tǒng)的對(duì)象存儲(chǔ)守護(hù)進(jìn)程。 它負(fù)責(zé)將對(duì)象存儲(chǔ)在本地文件系統(tǒng)上蕴掏,并通過(guò)網(wǎng)絡(luò)提供對(duì)它們的訪問(wèn)障般。必須在群集中的每個(gè)服務(wù)器上運(yùn)行此守護(hù)程序。 每個(gè)OSD都可以關(guān)聯(lián)硬盤(pán)驅(qū)動(dòng)器盛杰。
  • ceph-mds: Meta-Data Server (MDS)挽荡,元數(shù)據(jù)服務(wù)。 MDS在Ceph客戶(hù)端的對(duì)象之上構(gòu)建POSIX文件系統(tǒng)即供。不使用Ceph文件系統(tǒng)定拟,則不需要元數(shù)據(jù)服務(wù)器。
  • ceph-mon: Monitor (MON),監(jiān)控服務(wù)青自。輕量級(jí)守護(hù)程序株依,用于處理與外部應(yīng)用程序和客戶(hù)端的所有通信。 它還為Ceph / RADOS集群中的分布式?jīng)Q策提供了共識(shí)延窜。 例如恋腕,當(dāng)您在客戶(hù)端上安裝Ceph共享時(shí),您指向MON服務(wù)器的地址逆瑞。 它檢查數(shù)據(jù)的狀態(tài)和一致性荠藤。 在理想的設(shè)置中,您必須在不同的服務(wù)器上運(yùn)行至少三個(gè)ceph-mon守護(hù)進(jìn)程获高。

其它組件

  • ceph-mgr: Ceph Manager Daemon(ceph-mgr)哈肖,管理服務(wù)。與監(jiān)視器守護(hù)程序一起運(yùn)行念秧,為外部監(jiān)視和管理系統(tǒng)提供額外的監(jiān)視和接口淤井。
  • ceph-nfs: 可以使用NFS-Ganesha NFS Server通過(guò)NFS協(xié)議導(dǎo)出CephFS命名空間。NFS-Ganesha提供了一個(gè)文件系統(tǒng)抽象層(FSAL)來(lái)插入不同的存儲(chǔ)后端摊趾。Ceph對(duì)象網(wǎng)關(guān)可以配置為在嵌入NFS-Ganesha NFS Server時(shí)提供基于文件的訪問(wèn)币狠。
  • ceph-rgw: Ceph Object Gateway,對(duì)象網(wǎng)關(guān)服務(wù)严就。Ceph對(duì)象存儲(chǔ)使用Ceph對(duì)象網(wǎng)關(guān)守護(hù)進(jìn)程(radosgw),它是一個(gè)用于與Ceph存儲(chǔ)集群交互的HTTP服務(wù)器器罐。 由于它提供與OpenStack Swift和Amazon S3兼容的接口梢为,因此Ceph對(duì)象網(wǎng)關(guān)具有自己的用戶(hù)管理。 Ceph對(duì)象網(wǎng)關(guān)可以將數(shù)據(jù)存儲(chǔ)在用于存儲(chǔ)來(lái)自Ceph文件系統(tǒng)客戶(hù)端或Ceph塊設(shè)備客戶(hù)端的數(shù)據(jù)的相同Ceph存儲(chǔ)集群中轰坊。 S3和Swift API共享一個(gè)公共命名空間铸董,因此您可以使用一個(gè)API編寫(xiě)數(shù)據(jù)并使用另一個(gè)API檢索它。

常見(jiàn)問(wèn)題及解決

參考:
http://docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-pg/

1.
Fetching Ceph Keyrings … No JSON Object Could be Decoded

此類(lèi)問(wèn)題為刪除環(huán)境時(shí)未刪除干凈肴沫,所有節(jié)點(diǎn)上使用docker volume ls查看是否有未清除干凈得卷粟害。手動(dòng)刪除。
參考:
https://docs.oracle.com/cd/E78305_01/E78304/html/troubleshoot-deploy-ceph.html

2.
pg_num 128 size 3 would mean 768 total pgs

類(lèi)似問(wèn)題為pg 數(shù)量設(shè)置不正確颤芬,根據(jù)實(shí)際情況調(diào)整大小悲幅。但不一定每次報(bào)這個(gè)問(wèn)題都是數(shù)量不正確導(dǎo)致得。

3.

若一直無(wú)法定位問(wèn)題站蝠,可去容器中查看日志汰具。
比如,日志一直報(bào)無(wú)法連接之類(lèi)得菱魔,檢查防火墻(iptables留荔,firewalld)

4.

在反復(fù)重裝得情況下,可能觸發(fā)ceph無(wú)法mount磁盤(pán)得問(wèn)題澜倦。在vmware中刪掉此磁盤(pán)聚蝶,重新創(chuàng)建即可杰妓。
經(jīng)測(cè)試,正確得重裝姿勢(shì)為:

kolla-ansible -i /opt/node destroy --yes-i-really-really-mean-it
等待成功后碘勉,再重新命名磁盤(pán)(前面得parted命令)

常用命令及解釋

ceph -s  # 查看整體狀態(tài)
ceph osd tree  # 查看osd結(jié)構(gòu)巷挥,通常看是否與host對(duì)應(yīng)恰聘。

ceph osd lspools  # 查看池信息
ceph health detail  # 查看健康詳情
ceph osd dump  # 查看osd詳情
ceph pg dump   # 查看pg詳情
ceph osd crush xxxx  # 此類(lèi)命令為ceph策略相關(guān)句各。建議了解

擴(kuò)展知識(shí)

  1. osd(filestore后端)相關(guān)
    在同一個(gè)主機(jī)有多個(gè)osd磁盤(pán)時(shí),磁盤(pán)標(biāo)簽需添加后綴區(qū)分晴叨。比如2個(gè)osd:
parted /dev/sdb -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_001 1 -1
parted /dev/sdc -s -- mklabel gpt mkpart KOLLA_CEPH_OSD_BOOTSTRAP_002 1 -1

每個(gè)osd盤(pán)都會(huì)有對(duì)應(yīng)一個(gè)osd得容器凿宾。
其次,osd還可以有日志盤(pán)兼蕊,緩存盤(pán)初厚,這兩個(gè)均建議為固態(tài)盤(pán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孙技,一起剝皮案震驚了整個(gè)濱河市产禾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌牵啦,老刑警劉巖亚情,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異哈雏,居然都是意外死亡楞件,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)裳瘪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)土浸,“玉大人,你說(shuō)我怎么就攤上這事彭羹』埔粒” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵派殷,是天一觀的道長(zhǎng)还最。 經(jīng)常有香客問(wèn)我,道長(zhǎng)毡惜,這世上最難降的妖魔是什么憋活? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮虱黄,結(jié)果婚禮上悦即,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好辜梳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布粱甫。 她就那樣靜靜地躺著,像睡著了一般作瞄。 火紅的嫁衣襯著肌膚如雪茶宵。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天宗挥,我揣著相機(jī)與錄音乌庶,去河邊找鬼。 笑死契耿,一個(gè)胖子當(dāng)著我的面吹牛瞒大,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播搪桂,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼透敌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了踢械?” 一聲冷哼從身側(cè)響起酗电,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎内列,沒(méi)想到半個(gè)月后撵术,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡话瞧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年嫩与,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片移稳。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蕴纳,死狀恐怖会油,靈堂內(nèi)的尸體忽然破棺而出个粱,到底是詐尸還是另有隱情,我是刑警寧澤翻翩,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布都许,位于F島的核電站,受9級(jí)特大地震影響嫂冻,放射性物質(zhì)發(fā)生泄漏胶征。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一桨仿、第九天 我趴在偏房一處隱蔽的房頂上張望睛低。 院中可真熱鬧,春花似錦、人聲如沸钱雷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)罩抗。三九已至拉庵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間套蒂,已是汗流浹背钞支。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留操刀,地道東北人烁挟。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像馍刮,于是被迫代替她去往敵國(guó)和親信夫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

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

  • 參考文檔 https://www.linuxidc.com/Linux/2017-09/146760.htmhtt...
    三杯水Plus閱讀 4,272評(píng)論 0 8
  • 轉(zhuǎn)載社區(qū)的文章 目錄 第1章 概覽 第2章 存儲(chǔ)集群架構(gòu) 2.1 存儲(chǔ)池 2.2 身份認(rèn)證 2.3 PG(s) 2...
    620T閱讀 4,714評(píng)論 0 11
  • 系統(tǒng)環(huán)境: centos73.10.0-514.26.2.el7.x86_64 機(jī)器數(shù)量:五臺(tái) 硬盤(pán):四塊一塊為系...
    think_lonely閱讀 4,652評(píng)論 0 5
  • 一卡啰、概述 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng)静稻,誕生于2004年,最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目匈辱。隨著云計(jì)...
    魏鎮(zhèn)坪閱讀 49,410評(píng)論 3 54
  • ceph簡(jiǎn)介 Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng)振湾,誕生于2004年,是最早致力于開(kāi)發(fā)下一代高性能分布式文件系統(tǒng)的項(xiàng)目亡脸。隨...
    愛(ài)吃土豆的程序猿閱讀 6,017評(píng)論 0 21