Openstack+ceph安裝

CEPH分部署系統

數據是分佈到各個節點上去,不在是存儲在一個節點

目前主流的方案是Openstack+Ceph的方案

主要作用

主要功能是對象存儲、塊存儲、文件系統
Ceph----Cinder ●塊存儲 爲雲主機提供數據盤
Ceph----Swift ●對象存儲 是一個網絡盤用來存儲數據
Ceph----Glance ●存儲鏡像
Ceph----Nova ●存儲雲機主機
Ceph----文件系統 是將Ceph的存儲劃分給其他的服務使用,類似NFS、samba

Ceph集羣特點

Ceph是一個分佈式集羣系統,至少需要一個monitor和2個OSD守護進程
運行Ceph文件系統客戶端還需要MS(Metadata server)

什麼是OSD

OSD是存儲數據、處理數據的複製、回覆、回填在均衡、並且通過其他檢查其他的OSD的守護進程的心跳,向monitor提供一些監控信息

什麼是Monitor

監視整個集羣狀態信息,當Ceph的集羣爲2個副本,至少需要2個OSD才能達到健康狀態,同時還守護各種圖表(OSD圖、PG組、Crush圖等等)

什麼是Ceph-mgr

Ceph Manager Daemon,簡稱Ceph-mgr,該組件的主要作用是分擔和擴展monitor的部分功能,減輕monitor的負擔,更好的管理Ceph存儲系統

① CEPH基礎環境

Openstack安裝(不會點我👇)

1、控制節點(計算+網絡)
CPU:雙核雙線程-CPU虛擬化開啓
內存:8G 硬盤:300G+1024G(充當CEPH塊存儲)
網卡:VM1-192.168.100.10 NAT-20.0.0.10
操作系統:Centos 7.5(1804)-最小化安裝

2、計算節點1(計算)
CPU:雙核雙線程-CPU虛擬化開啓
內存:8G 硬盤:300G+1024G(充當CEPH塊存儲)
網卡:VM1-192.168.100.11
操作系統:Centos 7.5(1804)-最小化安裝

3、計算節點2(計算)
CPU:雙核雙線程-CPU虛擬化開啓
內存:8G 硬盤:300G+1024G(充當CEPH塊存儲)
網卡:VM1-192.168.100.12
操作系統:Centos 7.5(1804)-最小化安裝

部署CEPH之前,必須把和存儲有關係數據清理乾淨
1、OpenStack安裝了實例,必須刪除----在控制檯dashboard刪除
2、OPenStack上產的鏡像,必須刪除----在控制檯dashboard刪除
3、OpenStack的cinder塊,必須刪除----在控制檯dashboard刪除

三個節點iptables 防火牆關閉
systemctl stop iptables
systemctl disable iptables

節點必須做免交互

主機名、hosts、關閉防火牆、hostname

② CEPH集羣搭建
1、三個節點、關閉防火牆
systemctl stop iptables
systemctl disable iptables
systemctl status iptables

2、三個節點安裝Python-setuptools工具
yum -y install python-setuptools

3、在控制節點,創建ceph配置文件目錄
mkdir -p /etc/ceph

4、在控制節點安裝ceph-deploy
yum -y install ceph-deploy

5、在三個節點安裝ceph軟件
yum -y install ceph

6、創建三個mon 
進入控制節點/etc/ceph的目錄
cd /etc/ceph
ceph-deploy new ct c1 c2

more /etc/ceph/ceph.conf

7、初始化mon 並收集祕鑰(三個節點)
進入控制節點/etc/ceph的目錄
cd /etc/ceph
[root@ct ceph]# ceph-deploy mon create-initial
[root@ct ceph]# ll 
total 160
-rw-------. 1 root root   113 Mar 11 06:00 ceph.bootstrap-mds.keyring
-rw-------. 1 root root   113 Mar 11 06:00 ceph.bootstrap-mgr.keyring
-rw-------. 1 root root   113 Mar 11 06:00 ceph.bootstrap-osd.keyring
-rw-------. 1 root root   113 Mar 11 06:00 ceph.bootstrap-rgw.keyring
-rw-------. 1 root root   151 Mar 11 06:00 ceph.client.admin.keyring
-rw-r--r--. 1 root root   231 Mar 11 05:59 ceph.conf
-rw-r--r--. 1 root root 81561 Mar 11 06:00 ceph-deploy-ceph.log
-rw-------. 1 root root    73 Mar 11 05:34 ceph.mon.keyring
-rw-r--r--. 1 root root    92 Jun  3  2019 rbdmap

8、創建OSD
進入控制節點/etc/ceph的目錄
cd /etc/ceph
ceph-deploy osd create --data /dev/sdb ct
ceph-deploy osd create --data /dev/sdb c1
ceph-deploy osd create --data /dev/sdb c2

9、使用ceph-deploy下發配置文件和admin祕鑰下發到ct c1 c2
進入控制節點/etc/ceph的目錄
cd /etc/ceph
ceph-deploy admin ct c1 c2

10、給ct、c1、c2 每個節點的keyring增加讀的權限
[root@ct ceph# chmod +x /etc/ceph/ceph.client.admin.keyring
[root@c1 ceph# chmod +x /etc/ceph/ceph.client.admin.keyring
[root@c2 ceph# chmod +x /etc/ceph/ceph.client.admin.keyring

11、查看ceph集羣狀態
ceph -s
ceph osd tree
在這裏插入圖片描述

12、創建mgr管理服務ll
進入控制節點/etc/ceph的目錄
cd /etc/ceph
ceph-deploy mgr create ct c1 c2
ceph -s

在這裏插入圖片描述

13、創建三個與openstack對接的pool(volumes、vms、images)64是PG
ceph osd pool create volumes 64
ceph osd pool create vms 64
ceph osd pool create images 64

14、查看CEPH狀態
ceph mon stat
ceph osd status	
ceph osd lspools	###查看創建的pools池
③ CEPH集羣管理頁面安裝
1、查看CEPH狀態  ##狀態不要出現錯誤error
ceph -s
ceph mon stat
ceph osd status	
ceph osd lspools

2、啓用dashboard模塊
ceph mgr module enable dashboard

3、創建https證書
ceph dashboard create-self-signed-cert

4、查看mgr服務
ceph mgr services

5、在瀏覽器中打開ceph網頁
https://192.168.140.10:8443

6、設置賬號密碼
ceph dashboard set-login-credentials admin 123 ###admin是賬號 123是密碼這個可以改
在這裏插入圖片描述
在這裏插入圖片描述

④ CEPH與OPenStack對接環境初始化準備

1、控制節點創建client.cinder並設置權限

ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=volumes,allow rwx pool=vms,allow rx pool=images'

2、控制節點創建client.glance並設置權限
ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children,allow rwx pool=images'

3、傳送祕鑰到對接的節點,因爲glance自身就裝在控制節點所以不需要發送到其他的節點
ceph auth get-or-create client.glance |tee /etc/ceph/ceph.client.glance.keyring 
chown  glance.glance /etc/ceph/ceph.client.glance.keyring 

4、將client.cinder節點 因爲這個默認也是安裝在controller上 ,所以不需要傳遞到其他節點,如果在其他節點就執行第一條語句##
ceph auth get-or-create client.cinder | tee /etc/ceph/ceph.client.cinder.keyring
chown  cinder.cinder /etc/ceph/ceph.client.cinder.keyring

5、同時也需要將client.cinder 傳遞到計算節點
由於計算節點需要將用戶的client.cinder用戶的密鑰文件存儲在libvirt中,所以需要執行如下操作
ceph auth get-key client.cinder |ssh c1 tee client.cinder.key 
ceph auth get-key client.cinder |ssh c2 tee client.cinder.key

6、在運行nova-compute的計算節點講臨時密鑰文件添加到libvirt 中然後刪除
###############################
配置libvirt secret
KVM虛擬機需要使用librbd纔可以訪問ceph集羣
Librbd訪問ceph又需要賬戶認證
因此在這裏,需要給libvirt設置賬戶信息

##########在C1,C2節點上操作的###############

⑴生成UUID
uuidgen 

9776c7a2-5a4d-4b65-b7ed-2cbf96bb8ebd

⑵用如下內容創建一個祕鑰文件確保使用上一步驟中生成唯一的UUID
cd /root
cat >secret.xml <<EOF
<secret ephemeral='no' private='no'>
   <uuid>9776c7a2-5a4d-4b65-b7ed-2cbf96bb8ebd</uuid>
   <usage type='ceph'>
    <name>client.cinder secret</name>
   </usage>
</secret>
EOF

⑶定義祕鑰,並將其保存。後續步驟中使用這個祕鑰
virsh secret-define --file secret.xml

⑷設置祕鑰並刪除臨時文件。刪除文件的步驟是選的的,步驟是保持系統的純淨。
virsh secret-set-value --secret 9776c7a2-5a4d-4b65-b7ed-2cbf96bb8ebd --base64 $(cat client.cinder.key) && rm -rf client.cinder.key secret.xml

###ct###
ceph osd pool application enable vms mon
ceph osd pool application enable images mon
ceph osd pool application enable volumes mon
⑤ Ceph對接Glance

登錄到glance 所在的節點 然後修改
1、備份配置文件
cp /etc/glance/glance-api.conf /etc/glance/glance-api.conf.bak

2、修改對接配置文件
vi /etc/glance/glance-api.conf
[glance_store]
stores = rbd ###●2054行、存儲的類型格式
default_store = rbd ###●2108行、修改默認的存儲格式類型
#filesystem_store_datadir = /var/lib/glance/images/ ###●2442行、默認儲存本地註銷掉
rbd_store_chunk_size = 8 ###●2605行、去掉註釋
rbd_store_pool = images ###●2626行、去掉註釋
rbd_store_user = glance ###●2645行、去掉註釋、指定glance用戶,不知道可以查
rbd_store_ceph_conf = /etc/ceph/ceph.conf ###●2664行、去掉註釋 指定CEPH的路徑

####查找glance用戶,對接上面#########

[root@ct ceph]# source /root/keystonerc_admin
[root@ct ceph(keystone_admin)]# openstack user list |grep glance

3、重啓OpenStack-glance-api服務
systemctl restart openstack-glance-api

⑥ ceph與cinder對接

1、備份cinder.conf配置文件
cp /etc/cinder/cinder.conf /etc/cinder/cinder.conf.bak

2、修改配置文件
vi /etc/cinder/cinder.conf

[DEFAULT]
enabled_backends = ceph ###●409行,更改爲ceph
到某行
#[lvm]
#volume_backend_name=lvm
#volume_driver=cinder.volume.drivers.lvm.LVMVolumeDriver
#iscsi_ip_address=192.168.100.10
#iscsi_helper=lioadm
#volume_group=cinder-volumes
#volumes_dir=/var/lib/cinder/volumes
[ceph]
default_volume_type=ceph
glance_api_version = 2
volume_driver = cinder.volume.drivers.rbd.RBDDriver
volume_backend_name = ceph
rbd_pool = volumes
rbd_ceph_conf = /etc/ceph/ceph.conf
rbd_flatten_volume_from_snapshot = false
rbd_max_clone_depth = 5
rbd_store_chunk_size = 4
rados_connect_timeout = -1
rbd_user = cinder
rbd_secret_uuid = 4fe4a0ed-9ff8-481b-ad21-57a436d3853d ####這個uuid 寫在自己的計算節點上的

3、重啓cinder服務
[root@ct ~(keystone_admin)]# systemctl restart openstack-cinder-volume
systemctl status openstack-cinder-volume

4、查看cinder日誌文件
tail -f /var/log/cinder/volume.log

5、查看cinder卷的類型有幾個?
source /root/keystonerc_admin
cinder type-list

6.命令行創建cinder 的ceph存儲後端相應的type
source /root/keystone_admin
cinder type-create ceph
cinder type-list
cinder type-key ceph set volume_backend_name=ceph ####設置後端的存儲類型 volume_backend_name=ceph一定要頂格寫不能有空格

⑦ Ceph與Nova 對接

1、備份配置文件(C1、C2節點)
cp /etc/nova/nova.conf /etc/nova/nova.conf.bak

2、修改配置文件(C1、C2節點)
vi /etc/nova/nova.conf 所有計算節點的配置文件
[libvirt]
images_type = rbd ####●7072行、去掉註釋、修改類型RBD
images_rbd_pool = vms ####●7096行、去掉註釋、改爲VMS在CEPH中聲明的
images_rbd_ceph_conf = /etc/ceph/ceph.conf ####●7099行、去掉註釋、添加CEPH配置文件路徑
rbd_user = cinder ####●7256行、去掉註釋、添加cinder
rbd_secret_uuid =d90a58e3-bd22-489f-8720-28323a2e90e8 ####●7261行、去掉註釋、添加UUID值
disk_cachemodes=“network=writeback” ####●6932行、去掉註釋、添加"network=writeback"硬盤緩存模式
inject_password=false ####6421行、不用更改
inject_key=false ####6446行、不用更改
inject_partition=-2 ####6484行、不用更改
live_migration_flag=“VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED” ####●找到live_migration附近添加整行 是否啓用熱遷移
hw_disk_discard=unmap ####●7114行、去掉註釋、添加unmap

3、安裝Libvirt(C1、C2節點)
yum -y install libvirt

4、編輯計算節點(C1、C2節點)添加
vi /etc/ceph/ceph.conf
[client]
rbd cache=true
rbd cache writethrough until flush=true
admin socket = /var/run/ceph/guests/clustercluster-type.id.id.pid.cctid.asoklogfile=/var/log/qemu/qemuguestcctid.asok log file = /var/log/qemu/qemu-guest-pid.log
rbd concurrent management ops = 20

mkdir -p /var/run/ceph/guests/ /var/log/qemu/

chown 777 -R /var/run/ceph/guests/ /var/log/qemu/

5、將控制節點的/ect/ceph/下的密鑰
cd /etc/ceph
scp ceph.client.cinder.keyring root@c1:/etc/ceph
scp ceph.client.cinder.keyring root@c2:/etc/ceph

6、計算節點重啓服務
systemctl restart libvirtd
systemctl enable libvirtd
systemctl restart openstack-nova-compute

測試

在這裏插入圖片描述

報錯

接口down狀態
在這裏插入圖片描述
解絕:看L3接口有沒有掛(neutron agent-list)
如果:查看不了
在這裏插入圖片描述
就用:source keystonerc_admin
然後neutron agent-list
在這裏插入圖片描述
沒有L3,L3掛掉了
重啓L3:systemctl restart neutron-l3-agent
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章