自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

教你如何使用Ceph塊設(shè)備增強(qiáng)OpenStack云環(huán)境

云計(jì)算 OpenStack
也許Ceph最有意思的部分就是同OpenStack的集成了。libvirt 配置了 librbd 的 QEMU 接口,通過(guò)它可以在 OpenStack 中使用 Ceph 塊設(shè)備鏡像。Ceph 塊設(shè)備鏡像被當(dāng)作集群對(duì)象,這意味著它比獨(dú)立的服務(wù)器有更好的性能。

也許Ceph最有意思的部分就是同OpenStack的集成了。libvirt 配置了 librbd 的 QEMU 接口,通過(guò)它可以在 OpenStack 中使用 Ceph 塊設(shè)備鏡像。Ceph 塊設(shè)備鏡像被當(dāng)作集群對(duì)象,這意味著它比獨(dú)立的服務(wù)器有更好的性能。

在 OpenStack 中使用 Ceph 塊設(shè)備,必須首先安裝 QEMU,libvirt 和 OpenStack。建議 OpenStack 安裝的時(shí)候使用獨(dú)立的物理節(jié)點(diǎn)。OpenStack 節(jié)點(diǎn)建議最小 8G RAM和四核處理器。下圖描述了 OpenStack 和 Ceph 技術(shù)層次。

Important:要在 OpenStack 中使用 Ceph,必須首先運(yùn)行 Ceph 存儲(chǔ)集群

OpenStack 與 Ceph 的三個(gè)結(jié)合點(diǎn):

  • 鏡像:OpenStack Glance 管理虛擬機(jī)鏡像。鏡像是不變的。OpenStack 把鏡像當(dāng)作二進(jìn)制對(duì)象并以此格式下載。
  • 卷:卷是塊設(shè)備。OpenStack 使用卷來(lái)啟動(dòng)虛擬機(jī),或者綁定卷到運(yùn)行中的虛擬機(jī)。OpenStack 使用 Cinder 服務(wù)管理卷。
  • 客戶磁盤(pán):客戶磁盤(pán)是客戶操作系統(tǒng)磁盤(pán)。默認(rèn)情況下,當(dāng)啟動(dòng)一臺(tái)虛擬機(jī)時(shí),它的系統(tǒng)盤(pán)以文件的形式出現(xiàn)在 hypervisor 系統(tǒng)上(通常在/var/lib/nova/instances/<uuid>)。在 OpenStack Havana 以前的版本,在 Ceph 中啟動(dòng)虛擬機(jī)的唯一方式是使用 Cinder 的 boot-from-volume 功能,現(xiàn)在能夠在 Ceph 中直接啟動(dòng)虛擬機(jī)而不用依賴于 Cinder,這是非常有利的因?yàn)樗軌蜃屇愫苋菀椎倪M(jìn)行虛擬機(jī)的熱遷移。除此之外,如果 hypervisor 掛掉還能夠方便地觸發(fā) nova evacute 然后無(wú)縫得在其他的地方繼續(xù)運(yùn)行虛擬機(jī)。

可以使用 OpenStack Glance 來(lái)存儲(chǔ)鏡像在 Ceph 塊設(shè)備中,也可以使用 Cinder 通過(guò)鏡像的寫(xiě)時(shí)復(fù)制來(lái)啟動(dòng)虛擬機(jī)。

下面詳細(xì)介紹 Glance,Cinder 和 Nova 的配置過(guò)程,盡管它們沒(méi)有必要一起使用。當(dāng)虛擬機(jī)運(yùn)行使用本地磁盤(pán)運(yùn)行的時(shí)候,可以把鏡像存儲(chǔ)在 Ceph 塊設(shè)備中,或者正相反。

Important:Ceph 不支持 QCOW2 格式的虛擬機(jī)磁盤(pán)。所以,如果想要在 Ceph 中啟動(dòng)虛擬機(jī)(后端文件或者從卷啟動(dòng)),Glance 鏡像必須是 RAW格式

Tip:本文檔描述的 Ceph 塊設(shè)備是基于 OpenStack Havana。更早的版本請(qǐng)看Block Devices and OpenStack (Dumpling)。
創(chuàng)建一個(gè)池

默認(rèn)情況下,Ceph 塊設(shè)備使用 rbd 池??梢允褂萌魏文軌蚴褂玫某亍=ㄗh為 Cinder 和 Glance 單獨(dú)創(chuàng)建池。確保 Ceph 集群正常運(yùn)行,然后創(chuàng)建池。

  1. ceph osd pool create volumes 128 
  2. ceph osd pool create images 128 
  3. ceph osd pool create backups 128 
  4. ceph osd pool create vms 128 

看 Create a Pool 和 Placement Groups 來(lái)了解指定池的 pg 數(shù)量的詳細(xì)信息和應(yīng)該為你的池指定多少 pg。

配置 OpenStack Ceph 客戶端

運(yùn)行 glance-api,cinder-volume,nova-compute 和 cinder-backup 的節(jié)點(diǎn)是 Ceph 客戶端。每一個(gè)節(jié)點(diǎn)都需要 ceph.conf 文件:

  1. ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf 

安裝 Ceph 客戶端包

在 glance-api 節(jié)點(diǎn),需要為 librbd 綁定 Python

  1. sudo apt-get install python-ceph 
  2. sudo yum install python-ceph 

在 nova-compute,cinder-backup 和 cinder-volume 節(jié)點(diǎn)要用到 Python 和 Ceph 客戶端命令行工具:

  1. sudo apt-get install ceph-common 
  2. sudo yum install ceph 

設(shè)置 Ceph 客戶端認(rèn)證

如果使用了 cephx authentication,創(chuàng)建一個(gè)新用戶為 Nova/Cinder 和 Glance。執(zhí)行下面的命令:

  1. 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. ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images' 
  3. ceph auth get-or-create client.cinder-backup mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=backups' 

為 client.cinder,client.glance 和 client.cinder-backup 添加密鑰來(lái)訪問(wèn)節(jié)點(diǎn)并改變所有者:

  1. ceph auth get-or-create client.glance | ssh {your-glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring 
  2. ssh {your-glance-api-server} sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring 
  3. ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring 
  4. ssh {your-cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring 
  5. ceph auth get-or-create client.cinder-backup | ssh {your-cinder-backup-server} sudo tee /etc/ceph/ceph.client.cinder-backup.keyring 
  6. ssh {your-cinder-backup-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring 

運(yùn)行 nova-compute 的節(jié)點(diǎn) nova-compute 進(jìn)程需要密鑰文件。它們也存儲(chǔ) client.cinder 用戶的密鑰在 libvirt。libvirt 進(jìn)程在 Cinder 中綁定塊設(shè)備時(shí)需要用到它來(lái)訪問(wèn)集群。

創(chuàng)建一個(gè)臨時(shí)的密鑰文件副本在運(yùn)行 nova-compute 的節(jié)點(diǎn):

  1. ceph auth get-key client.cinder | ssh {your-compute-node} tee client.cinder.key 

然后在計(jì)算節(jié)點(diǎn),為 libvirt 添加密鑰文件并且移除臨時(shí)的副本密鑰:

  1. uuidgen 
  2. 457eb676-33da-42ec-9a8c-9293d545c337 
  3.  
  4. cat > secret.xml <<EOF 
  5. <secret ephemeral='no' private='no'
  6. <uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid> 
  7. <usage type='ceph'
  8. <name>client.cinder secret</name> 
  9. </usage> 
  10. </secret> 
  11. EOF 
  12. sudo virsh secret-define --file secret.xml 
  13. Secret 457eb676-33da-42ec-9a8c-9293d545c337 created 
  14. sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 \ 
  15. --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml 

Important:沒(méi)有必要保存所有計(jì)算節(jié)點(diǎn)的 UUID。但是為了平臺(tái)的一致性,最好保存相同的 UUID。

配置 OpenStack 使用 Ceph

配置 Glance

Glance 能夠使用多種后端來(lái)存儲(chǔ)鏡像。默認(rèn)使用 Ceph 塊設(shè)備,配置 Glance 如下:

Juno 之前的版本

編輯 /etc/glance/glance-api.conf 并且添加下面的 [DEFAULT] 部分:

  1. default_store = rbd rbd_store_user = glance rbd_store_pool = images rbd_store_chunk_size = 8 

Juno

編輯 /etc/glance/glance-api.conf 并且添加 [glance_store] 部分:

  1. [DEFAULT] 
  2. ... 
  3. default_store = rbd 
  4. ... 
  5. [glance_store] 
  6. stores = rbd 
  7. rbd_store_pool = images 
  8. rbd_store_user = glance 
  9. rbd_store_ceph_conf = /etc/ceph/ceph.conf 
  10. rbd_store_chunk_size = 8 

更多關(guān)于 Glance 的配置信息請(qǐng)看:http://docs.openstack.org/trunk/config-reference/content/section_glance-api.conf.html。

Important:Glance 還沒(méi)有完全移到 'store'。所以仍然需要在 DEFAULT 部分配置 store。

#p#

所有 OpenStack 版本

如果要啟用鏡像的寫(xiě)時(shí)復(fù)制功能,添加下面的 [DEFAULT] 部分:

  1. show_image_direct_url = True 

注意這會(huì)在 Glance API 中暴露后端存儲(chǔ)位置,所以 endpoint 不應(yīng)該被公開(kāi)訪問(wèn)

禁用 Glance 緩存管理來(lái)避免鏡像被緩存到 /var/lib/glance/image-cache/,確保配置文件中有 flavor = keystone+cachemanagement:

  1. [paste_deploy] flavor = keystone 

配置 Cinder Backup

OpenStack Cinder Backup 需要一個(gè)守護(hù)進(jìn)程,不要忘記安裝它。在 Cinder Backup 節(jié)點(diǎn),編輯 /etc/cinder/cinder.conf 并添加:

  1. backup_driver = cinder.backup.drivers.ceph 
  2. backup_ceph_conf = /etc/ceph/ceph.conf 
  3. backup_ceph_user = cinder-backup 
  4. backup_ceph_chunk_size = 134217728 
  5. backup_ceph_pool = backups 
  6. backup_ceph_stripe_unit = 0 
  7. backup_ceph_stripe_count = 0 
  8. restore_discard_excess_bytes = true 

配置 Nova 綁定 Ceph rbd 塊設(shè)備

為了綁定 Cinder 設(shè)備(塊設(shè)備或者啟動(dòng)卷),必須告訴 Nova(和 libvirt)用戶和 UUID。libvirt 在與 Ceph 集群進(jìn)行連接和認(rèn)證的時(shí)候提供這個(gè)用戶。

  1. rbd_user = cinder 
  2. rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337 

這兩個(gè)配置項(xiàng)同樣用于 Nova 的后端。

配置 Nova

為了直接從 Ceph 啟動(dòng)所有虛擬機(jī),你必須配置 Nova 的臨時(shí)后端。

建議在 Ceph 配置文件中啟用 RBD 緩存(從 Giant 版本默認(rèn)啟用)。還有,啟用 admin socket 對(duì)于故障排除的時(shí)候很有幫助。每臺(tái)使用 Ceph 塊設(shè)備的虛擬機(jī)都有一個(gè) socket 有助于性能分析和錯(cuò)誤判斷。

socket 可以通過(guò)這種方式訪問(wèn):

  1. ceph daemon /var/run/ceph/ceph-client.cinder.19195.32310016.asok help 

現(xiàn)在,在每個(gè)計(jì)算節(jié)點(diǎn)編輯 Ceph 配置文件:

  1. [client] 
  2. rbd cache = true 
  3. rbd cache writethrough until flush = true 
  4. admin socket = /var/run/ceph/$cluster-$type.$id.$pid.$cctid.asok 

Tip:如果虛擬機(jī)正在運(yùn)行,可以直接重啟來(lái)獲得 socket。

HAVANA 和 ICEHOUSE

HAVANA 和 ICEHOUSE 需要補(bǔ)丁來(lái)實(shí)現(xiàn)寫(xiě)時(shí)復(fù)制并且修復(fù) rbd 臨時(shí)磁盤(pán)的鏡像大小和熱遷移 Bug。這些可用的分支基于主干 Nova stable/havana 和 stable/icehouse。使用它們不是強(qiáng)制性的但是是非常建議的,為了利用寫(xiě)時(shí)復(fù)制的功能。

在每個(gè)計(jì)算節(jié)點(diǎn),編輯 /etc/nova/nova.conf 并且添加:

  1. libvirt_images_type = rbd 
  2. libvirt_images_rbd_pool = vms 
  3. libvirt_images_rbd_ceph_conf = /etc/ceph/ceph.conf 
  4. rbd_user = cinder 
  5. rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337  

禁用文件注入也是一個(gè)好的習(xí)慣。啟動(dòng)一個(gè)實(shí)例的時(shí)候,Nova 通常試圖去打開(kāi)虛擬機(jī)的根文件系統(tǒng)。然后 Nova 注入值比如密碼,ssh 密鑰等,直接進(jìn)入文件系統(tǒng)。然而,最好依賴元數(shù)據(jù)服務(wù)和 cloud-init。

在每個(gè)計(jì)算節(jié)點(diǎn),編輯 /etc/nova/nova.conf 并且添加:

  1. libvirt_inject_password = false libvirt_inject_key = false libvirt_inject_partition = -2 

確保熱遷移,使用下面的標(biāo)志:

  1. libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST" 

Juno

在 Juno 版本,Ceph 塊設(shè)備被移到 [libvirt] 部分。在每個(gè)計(jì)算節(jié)點(diǎn),編輯 /etc/nova/nova.conf 在 [libvirt] 部分添加:

  1. [libvirt] 
  2. images_type = rbd 
  3. images_rbd_pool = vms 
  4. images_rbd_ceph_conf = /etc/ceph/ceph.conf 
  5. rbd_user = cinder 
  6. rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337 

禁用文件注入也是一個(gè)好的習(xí)慣。啟動(dòng)一個(gè)實(shí)例的時(shí)候,Nova 通常試圖去打開(kāi)虛擬機(jī)的根文件系統(tǒng)。然后 Nova 注入值比如密碼,ssh 密鑰等,直接進(jìn)入文件系統(tǒng)。然而,最好依賴元數(shù)據(jù)服務(wù)和 cloud-init。

在每個(gè)計(jì)算節(jié)點(diǎn),編輯 /etc/nova/nova.conf 并且添加:

  1. libvirt_inject_password = false libvirt_inject_key = false libvirt_inject_partition = -2 

確保熱遷移,使用下面的標(biāo)志:

  1. libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST" 

重啟 OpenStack

激活 Ceph 塊設(shè)備驅(qū)動(dòng)并且載入塊設(shè)備池的名稱到配置中,必須重啟 OpenStack?;?Debian 的系統(tǒng)執(zhí)行這些命令:

  1. sudo glance-control api restart 
  2. sudo service nova-compute restart 
  3. sudo service cinder-volume restart 
  4. sudo service cinder-backup restart 

基于 Red Hat 的系統(tǒng)執(zhí)行這些命令:

  1. sudo service openstack-glance-api restart 
  2. sudo service openstack-nova-compute restart 
  3. sudo service openstack-cinder-volume restart 
  4. sudo service openstack-cinder-backup restart 

OpenStack 啟動(dòng)并運(yùn)行起來(lái)之后,就能夠創(chuàng)建一個(gè)卷并從它啟動(dòng)。

從塊設(shè)備啟動(dòng)

使用下面的 Cinder 命令創(chuàng)建一個(gè)來(lái)自鏡像的卷:

  1. cinder create --image-id {id of image} --display-name {name of volume} {size of volume} 

注意鏡像必須是 RAW 格式??梢允褂?qemu-img 轉(zhuǎn)換鏡像格式。例如:

  1. qemu-img convert -f {source-format} -O {output-format} {source-filename} {output-filename} 
  2. qemu-img convert -f qcow2 -O raw precise-cloudimg.img precise-cloudimg.raw 

當(dāng) Glance 和 Cinder 都使用 Ceph 塊設(shè)備,鏡像是寫(xiě)時(shí)復(fù)制的,所以創(chuàng)建一個(gè)新的卷非常迅速。在 OpenStack Dashboard 中,可以通過(guò)下面的步驟來(lái)從卷啟動(dòng)虛擬機(jī):

  • 載入一個(gè)新實(shí)例;
  • 選擇鏡像關(guān)聯(lián)到寫(xiě)時(shí)復(fù)制克??;
  • 選擇“從卷啟動(dòng)”;
  • 選擇創(chuàng)建的卷。

博文出處:http://my.oschina.net/JerryBaby/blog/376580

責(zé)任編輯:Ophira 來(lái)源: oschina博客
相關(guān)推薦

2017-12-06 14:35:01

OpenStackCeph存儲(chǔ)

2018-05-22 08:37:02

Ceph存儲(chǔ)存儲(chǔ)系統(tǒng)

2018-04-12 08:37:27

2011-08-11 13:31:41

移動(dòng)設(shè)備

2023-12-01 08:01:59

鏡像Ceph

2022-09-06 08:00:57

Ceph分布式存儲(chǔ)系統(tǒng)

2015-02-13 09:44:02

2018-09-21 11:00:58

Ceph存儲(chǔ)系統(tǒng)

2009-09-11 08:36:16

linux塊字符設(shè)備linux操作系統(tǒng)

2020-12-03 09:47:23

Python開(kāi)發(fā)工具

2015-04-03 10:43:49

2015-06-16 16:20:40

2020-12-09 06:26:13

多云混合云

2012-02-16 10:00:59

2012-03-02 09:02:17

云計(jì)算云鎖定

2016-01-31 17:44:46

星辰天合OpenStackCeph

2011-01-20 10:19:21

PowerShell個(gè)性化

2021-12-06 10:21:50

LinuxDNS 查詢

2012-09-12 17:04:53

OpenStack云計(jì)算存儲(chǔ)

2012-09-13 11:06:03

IBMdW
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)