openstack運維實戰系列(十八)nova與ceph結合

1. 背景說明

   nova負責虛擬機的生命週期管理,包括創建,刪除,重建,開機,關機,重啓,快照等,作爲openstack的核心,nova負責IaaS中計算重要的職責,其中nova的存儲格外重要,默認情況下,nova將instance的數據存放在/var/lib/nova/instances/%UUID目錄下,使用本地的存儲空間。使用這種方式帶來的好處是:簡單,易實現,速度快,故障域在一個可控制的範圍內。然而,缺點也非常明顯:compute出故障,上面的虛擬機down機時間長,沒法快速恢復,此外,一些特性如熱遷移live-migration,虛擬機容災nova evacuate等高級特性,將無法使用,對於後期的雲平臺建設,有明顯的缺陷。

2.關於分佈式存儲

  使用openstack時,是否使用分佈式文件系統,是一個非常值得思考和深思的問題,使用本地的優點非常明顯,同時帶來的缺點也顯而易見,使用分佈式存儲,技術上的空白和技術上的難度,也是值得思考的一個問題。同時,分佈式存儲又改如何選擇,應該選擇簡單的gluserfs還是呼聲較高的ceph,這些都是構建雲平臺需要考慮的地方,同時openstack和ceph都存在一些坑,需要在技術上有足夠的積累底蘊才能夠控制起來。如果有需要通過openstack在生產環境下構建雲平臺,我建議初期使用本地的存儲,充分利用KVM和本地文件系統的穩定,性能,後續有足夠的技術可以逐步灰度至分佈式存儲glusterfs或者ceph中。建議使用ceph,如果基於技術層面的考慮,可以考慮使用glusterfs,glusterfs以其簡單,易管理。

3.nova與ceph結合

1、ceph中創建存儲池pool

[root@controller_10_1_2_230 ~]# ceph osd pool create vms 128    #創建一個pools,名字爲vms,128個pg
pool 'vms' created

[root@controller_10_1_2_230 ~]# ceph osd lspools                #查看pools創建的情況
0 rbd,1 images,2 vms,
[root@controller_10_1_2_230 ~]# ceph osd pool stats
pool rbd id 0
  nothing is going on

pool images id 1
  nothing is going on

pool vms id 2
  nothing is going on

2、nova-compute節點安裝和配置客戶端

[root@compute1_10_1_2_232 ~]# yum install python-rbd ceph -y     #安裝客戶端包
[root@controller_10_1_2_230 ~]# scp  /etc/ceph/ceph.conf  [email protected]:/etc/ceph/ceph.conf #拷貝ceph配置文件

3、配置ceph認證,讓nova用戶能夠訪問vms池、images池

[root@controller_10_1_2_230 ~]# ceph auth get-or-create client.nova mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rwx pool=images'                       
[client.nova]
        key = AQBLXqpWB8HsChAA6hGUBT5JNrFGD116uy+nmg==
      
#查看ceph的認證信息
[root@controller_10_1_2_230 ~]# ceph auth list
installed auth entries:

osd.0
        key: AQDsx6lWYGehDxAAGwcYP9jDvH2Zaa8JlGwj1Q==
        caps: [mon] allow profile osd
        caps: [osd] allow *
osd.1
        key: AQD1x6lWQCYBERAAjIKO1LVpj8FvVefDvNQZSA==
        caps: [mon] allow profile osd
        caps: [osd] allow *
client.admin
        key: AQCexqlWQL6OGBAA2v5LsYEB5VgLyq/K2huY3A==
        caps: [mds] allow
        caps: [mon] allow *
        caps: [osd] allow *
client.bootstrap-mds
        key: AQCexqlWUMNRMRAAZEp/UlhQuaixMcNy5d5pPw==
        caps: [mon] allow profile bootstrap-mds
client.bootstrap-osd
        key: AQCexqlWQFfpJBAAfPCx4sTLNztBESyFKys9LQ==
        caps: [mon] allow profile bootstrap-osd
client.bootstrap-rgw
        key: AQAR7alWok0SGhAAFtOo0PFsZuVzczMvJox1Wg==
        caps: [mon] allow profile bootstrap-rgw
client.glance
        key: AQAl76lWHMySHxAANTfXv3JQ70GCEBOZI5abcQ==
        caps: [mon] allow r
        caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=images
client.nova
        key: AQBLXqpWB8HsChAA6hGUBT5JNrFGD116uy+nmg==
        caps: [mon] allow r
        caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=vms, allow rwx pool=images    #添加了nova用戶的認證信息

4、將ceph認證的key拷貝至計算節點

a、查看client.nova的key
[root@controller_10_1_2_230 ~]# ceph  auth get-or-create client.nova
[client.nova]
        key = AQBLXqpWB8HsChAA6hGUBT5JNrFGD116uy+nmg==

b、將key拷貝至遠端
[root@controller_10_1_2_230 ~]# scp  ceph.client.nova.kering  [email protected]:/etc/ceph/
ceph.client.nova.kering  

c、生成nova臨時的key

[root@controller_10_1_2_230 ~]# ceph auth get-key client.nova | ssh [email protected] tee client.nova.key

5、計算節點的libvirt使用ceph的key

a、生成uuid號
[root@compute1_10_1_2_232 ~]# uuidgen 
0d154ad2-ec21-4200-952f-7551503da8a1

b、生成加密文件
vim secret.xml

<secret ephemeral='no' private='no'>
        <uuid>0d154ad2-ec21-4200-952f-7551503da8a1</uuid>
        <usage type='ceph'>
                <name>client.cinder secret</name>
        </usage>
</secret>

c、加載加密文件
[root@compute1_10_1_2_232 ~]# virsh secret-define --file secret.xml 
Secret 0d154ad2-ec21-4200-952f-7551503da8a1 created

d、配置libvirt加密,使用client.nova.key
[root@compute1_10_1_2_232 ~]# virsh secret-set-value --secret 0d154ad2-ec21-4200-952f-7551503da8a1 --base64 $(cat /root/client.nova.key) 
Secret value set

e、查看libvirt定義的key
[root@compute1_10_1_2_232 ~]# virsh secret-list
UUID                                 Usage
-----------------------------------------------------------
0d154ad2-ec21-4200-952f-7551503da8a1 Unused






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