成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

教你如何使用Ceph塊設備增強OpenStack云環境

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

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

在 OpenStack 中使用 Ceph 塊設備,必須首先安裝 QEMU,libvirt 和 OpenStack。建議 OpenStack 安裝的時候使用獨立的物理節點。OpenStack 節點建議最小 8G RAM和四核處理器。下圖描述了 OpenStack 和 Ceph 技術層次。

Important:要在 OpenStack 中使用 Ceph,必須首先運行 Ceph 存儲集群

OpenStack 與 Ceph 的三個結合點:

  • 鏡像:OpenStack Glance 管理虛擬機鏡像。鏡像是不變的。OpenStack 把鏡像當作二進制對象并以此格式下載。
  • 卷:卷是塊設備。OpenStack 使用卷來啟動虛擬機,或者綁定卷到運行中的虛擬機。OpenStack 使用 Cinder 服務管理卷。
  • 客戶磁盤:客戶磁盤是客戶操作系統磁盤。默認情況下,當啟動一臺虛擬機時,它的系統盤以文件的形式出現在 hypervisor 系統上(通常在/var/lib/nova/instances/<uuid>)。在 OpenStack Havana 以前的版本,在 Ceph 中啟動虛擬機的唯一方式是使用 Cinder 的 boot-from-volume 功能,現在能夠在 Ceph 中直接啟動虛擬機而不用依賴于 Cinder,這是非常有利的因為它能夠讓你很容易的進行虛擬機的熱遷移。除此之外,如果 hypervisor 掛掉還能夠方便地觸發 nova evacute 然后無縫得在其他的地方繼續運行虛擬機。

可以使用 OpenStack Glance 來存儲鏡像在 Ceph 塊設備中,也可以使用 Cinder 通過鏡像的寫時復制來啟動虛擬機。

下面詳細介紹 Glance,Cinder 和 Nova 的配置過程,盡管它們沒有必要一起使用。當虛擬機運行使用本地磁盤運行的時候,可以把鏡像存儲在 Ceph 塊設備中,或者正相反。

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

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

默認情況下,Ceph 塊設備使用 rbd 池。可以使用任何能夠使用的池。建議為 Cinder 和 Glance 單獨創建池。確保 Ceph 集群正常運行,然后創建池。

  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 來了解指定池的 pg 數量的詳細信息和應該為你的池指定多少 pg。

配置 OpenStack Ceph 客戶端

運行 glance-api,cinder-volume,nova-compute 和 cinder-backup 的節點是 Ceph 客戶端。每一個節點都需要 ceph.conf 文件:

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

安裝 Ceph 客戶端包

在 glance-api 節點,需要為 librbd 綁定 Python

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

在 nova-compute,cinder-backup 和 cinder-volume 節點要用到 Python 和 Ceph 客戶端命令行工具:

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

設置 Ceph 客戶端認證

如果使用了 cephx authentication,創建一個新用戶為 Nova/Cinder 和 Glance。執行下面的命令:

  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 添加密鑰來訪問節點并改變所有者:

  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 

運行 nova-compute 的節點 nova-compute 進程需要密鑰文件。它們也存儲 client.cinder 用戶的密鑰在 libvirt。libvirt 進程在 Cinder 中綁定塊設備時需要用到它來訪問集群。

創建一個臨時的密鑰文件副本在運行 nova-compute 的節點:

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

然后在計算節點,為 libvirt 添加密鑰文件并且移除臨時的副本密鑰:

  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:沒有必要保存所有計算節點的 UUID。但是為了平臺的一致性,最好保存相同的 UUID。

配置 OpenStack 使用 Ceph

配置 Glance

Glance 能夠使用多種后端來存儲鏡像。默認使用 Ceph 塊設備,配置 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 

更多關于 Glance 的配置信息請看:http://docs.openstack.org/trunk/config-reference/content/section_glance-api.conf.html。

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

#p#

所有 OpenStack 版本

如果要啟用鏡像的寫時復制功能,添加下面的 [DEFAULT] 部分:

  1. show_image_direct_url = True 

注意這會在 Glance API 中暴露后端存儲位置,所以 endpoint 不應該被公開訪問

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

  1. [paste_deploy] flavor = keystone 

配置 Cinder Backup

OpenStack Cinder Backup 需要一個守護進程,不要忘記安裝它。在 Cinder Backup 節點,編輯 /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 塊設備

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

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

這兩個配置項同樣用于 Nova 的后端。

配置 Nova

為了直接從 Ceph 啟動所有虛擬機,你必須配置 Nova 的臨時后端。

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

socket 可以通過這種方式訪問:

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

現在,在每個計算節點編輯 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:如果虛擬機正在運行,可以直接重啟來獲得 socket。

HAVANA 和 ICEHOUSE

HAVANA 和 ICEHOUSE 需要補丁來實現寫時復制并且修復 rbd 臨時磁盤的鏡像大小和熱遷移 Bug。這些可用的分支基于主干 Nova stable/havana 和 stable/icehouse。使用它們不是強制性的但是是非常建議的,為了利用寫時復制的功能。

在每個計算節點,編輯 /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  

禁用文件注入也是一個好的習慣。啟動一個實例的時候,Nova 通常試圖去打開虛擬機的根文件系統。然后 Nova 注入值比如密碼,ssh 密鑰等,直接進入文件系統。然而,最好依賴元數據服務和 cloud-init。

在每個計算節點,編輯 /etc/nova/nova.conf 并且添加:

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

確保熱遷移,使用下面的標志:

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

Juno

在 Juno 版本,Ceph 塊設備被移到 [libvirt] 部分。在每個計算節點,編輯 /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 

禁用文件注入也是一個好的習慣。啟動一個實例的時候,Nova 通常試圖去打開虛擬機的根文件系統。然后 Nova 注入值比如密碼,ssh 密鑰等,直接進入文件系統。然而,最好依賴元數據服務和 cloud-init。

在每個計算節點,編輯 /etc/nova/nova.conf 并且添加:

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

確保熱遷移,使用下面的標志:

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

重啟 OpenStack

激活 Ceph 塊設備驅動并且載入塊設備池的名稱到配置中,必須重啟 OpenStack。基于 Debian 的系統執行這些命令:

  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 的系統執行這些命令:

  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 啟動并運行起來之后,就能夠創建一個卷并從它啟動。

從塊設備啟動

使用下面的 Cinder 命令創建一個來自鏡像的卷:

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

注意鏡像必須是 RAW 格式。可以使用 qemu-img 轉換鏡像格式。例如:

  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 

當 Glance 和 Cinder 都使用 Ceph 塊設備,鏡像是寫時復制的,所以創建一個新的卷非常迅速。在 OpenStack Dashboard 中,可以通過下面的步驟來從卷啟動虛擬機:

  • 載入一個新實例;
  • 選擇鏡像關聯到寫時復制克??;
  • 選擇“從卷啟動”;
  • 選擇創建的卷。

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

責任編輯:Ophira 來源: oschina博客
相關推薦

2018-05-22 08:37:02

Ceph存儲存儲系統

2017-12-06 14:35:01

OpenStackCeph存儲

2018-04-12 08:37:27

2022-09-06 08:00:57

Ceph分布式存儲系統

2011-08-11 13:31:41

移動設備

2020-12-03 09:47:23

Python開發工具

2018-09-21 11:00:58

Ceph存儲系統

2015-02-13 09:44:02

2023-12-01 08:01:59

鏡像Ceph

2009-09-11 08:36:16

linux塊字符設備linux操作系統

2012-03-02 09:02:17

云計算云鎖定

2021-12-06 10:21:50

LinuxDNS 查詢

2015-04-03 10:43:49

2015-06-16 16:20:40

2012-02-16 10:00:59

2020-12-09 06:26:13

多云混合云

2016-01-31 17:44:46

星辰天合OpenStackCeph

2009-06-17 15:18:09

Java環境

2012-09-13 11:06:03

IBMdW

2012-09-11 17:10:40

OpenStack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷不卡 | 在线观看中文字幕 | 亚洲高清视频一区 | 亚洲精品一二三区 | 国产欧美日韩精品一区 | 精品国产一区二区三区久久久四川 | 成人亚洲一区 | 久久精品久久久久久 | 久久国产高清视频 | 日本精品视频在线 | 国产永久免费 | 亚洲成人黄色 | 欧美精品在线播放 | 亚洲三级在线观看 | 午夜国产一级片 | 日韩中文字幕在线观看视频 | 中文字幕成人av | 一区二区在线 | 在线免费小视频 | 久久精品亚洲欧美日韩精品中文字幕 | 久久久久久免费精品一区二区三区 | 欧美成人精品一区二区男人看 | 2019精品手机国产品在线 | 91精品久久久久久久 | 狠狠伊人 | 国产精品揄拍一区二区久久国内亚洲精 | 午夜影院在线视频 | 一区二区在线 | 日本淫视频| 99re视频在线免费观看 | 亚洲欧洲成人av每日更新 | 亚洲精品视频在线 | 免费黄色片视频 | 久久综合av | 成人激情视频 | 午夜影视免费片在线观看 | 女人精96xxx免费网站p | 日韩成人性视频 | 国产精品区二区三区日本 | 欧美激情精品久久久久久变态 | 一级一片在线观看 |