您好,登錄后才能下訂單哦!
在上一期博文中,我們已經成功部署了 Ceph 集群,并且我們也掌握了相關 Ceph 的應用。今天,我們就來重點講下 Ceph 塊設備在實際環境中的應用-------將 Ceph 存儲系統提供的鏡像做為虛擬機的硬盤來安裝虛擬機系統。
一、前提
在今天這個大數據時代,我們大部分企業中,每天產生的數據大小,都可能會是一個天文數字。顯然,隨著數據量的激增,我們現有的服務器將無法滿足實際的需求,我們不可能為了增加一塊硬盤而重裝 RAID ,也不可能無限制的購買服務器,每個服務器做成單獨的 RAID ,再重新開始寫數據,那怎么辦呢?當然,有需求,我們就有方案,我們選擇分布式存儲。將所有數據全部寫到分布式存儲系統中,就可以完美解決我們目前所遇到尷尬。
二、使用 Ceph 塊設備
之前,我們已經有了 Ceph 集群,現在,我們直接使用現有的集群環境即可,關于集群的部署,可參考小弟的另外一篇博文 :https://blog.51cto.com/4746316/2329558
1、拓撲
2、創建名為 vm-image 的鏡像,大小為50G
①、創建鏡像
[root@ceph-a ceph]# rbd create cephrbd/vm-image --image-feature layering --size 50G
②、查看鏡像
[root@ceph-a ceph]# rbd info cephrbd/vm-image
或者
[root@ceph-a ceph]# qemu-img info rbd:cephrbd/vm-image
此命令格式為:qemu info 協議:池/鏡像
3、將物理主機做為 Ceph 集群的客戶端,安裝客戶端軟件包,并將 Ceph 的配置文件拷貝到物理主機中。
[root@localhost ~]# yum -y install ceph-common [root@ceph-a ceph]# scp /etc/ceph/ceph.c* root@192.168.20.151:/etc/ceph/
4、創建一臺 kvm 虛擬機,取名為 mycentos7 ,等向導結束后,強制關機。
5、導出我們剛才創建的 mycentos7 虛擬機的聲明文件,再將此虛擬機刪除。
[root@localhost opt]# virsh dumpxml mycentos7 >/opt/centos.xml [root@localhost opt]# virsh undefine mycentos7
6、關于虛擬機使用 Ceph 的鏡像,首先需要 Ceph 的認證,而認證方式就是先生成虛擬機的 secret ,再將 secret 與 Ceph 賬戶進行映射。
①、編寫 Ceph 賬戶信息文件,創建臨時 secret.xml 文件,賬戶信息文件的模板可在官方文檔中找到。
[root@localhost opt]# vim secret.xml
內容如下:
<secret ephemeral='no' private='no'> <usage type='ceph'> <name>client.admin secret</name> </usage> </secret>
②、生成 secret.xml 文件
[root@localhost opt]# virsh secret-define --file secret.xml
secret 為:93eb11ed-2367-44cd-85ef-56810d4186e6
③、查看 secret
[root@localhost opt]# virsh secret-list
7、將虛擬機的 secret 與 Ceph 管理員用戶進行關聯
①、查看 Ceph 管理員密鑰
[root@localhost opt]# cat /etc/ceph/ceph.client.admin.keyring
管理員密鑰為:AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==
②、關聯 secret 和 Ceph 管理員
[root@localhost opt]# virsh secret-set-value --secret 93eb11ed-2367-44cd-85ef-56810d4186e6 --base64 AQBBhQ9cJh/tDxAAzdcwBz3QZzPsCfWbQE0qjg==
8、修改虛擬機的配置文件 centos.xml,將 Ceph 管理員信息寫入到該文件中,并指定虛擬機磁盤使用 Ceph 鏡像。
[root@localhost opt]# vim centos.xml
如上圖,找到紅框區域,編輯黃顏色框區域的內容為途中樣式。或者修改問以下內容,
<disk type='network' device='disk'> <driver name='qemu' type='raw'/> <auth username='admin'> <secret type='ceph' uuid='93eb11ed-2367-44cd-85ef-56810d4186e6'/> </auth> <source protocol='rbd' name='cephrbd/vm-image'> <host name='192.168.20.144' port='6789'/> </source> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </disk>
注意:device='disk',是使用磁盤,device='cdrom',是使用光盤,別搞錯。disk type 字段修改為 network,driver type 字段修改為 raw,添加 auth 部分,uuid 需要根據自己的實際情況來填寫,添加 source 部分,name 字段需要根據自己創建的池和鏡像來填寫,host name 和 port 字段需要寫自己 Ceph 集群的 ceph-mon 的地址和端口。可以使用 netstat –tpnl 來查看
9、利用 xml 文件來生成虛擬機
[root@localhost opt]# virsh define centos.xml
10、打開虛擬機管理器,操作虛擬機
[root@localhost opt]# virt-manager
①、打開并運行虛擬機,如下圖:
②、當我們運行虛擬機后,發現虛擬機界面提示:no bootable device,這時候,我們單擊虛擬機界面左上角的燈泡狀的圖標。如下圖:
③、選擇引導選項,在右邊引導設備順序中,選擇 IDE CDROM1 并勾選, 再單擊向上的箭頭?,如下圖:
④、確認 IDE CDROM1 已經上移至第一位時,單擊 應用 ,如下圖:
⑤、再左邊選擇 IDE CDROM1 ,單擊右邊的 連接 ,如下圖:
⑥、彈出選擇介質對話框后,我們單擊 瀏覽 ,如下圖:
⑦、彈出選擇存儲卷后,我們找到自己上的光盤鏡像(這里為:CentOS-7-x86_64-Everything-1804.iso),并單擊 選擇卷 ,如下圖:
⑧、回到選擇介質對話框,單擊 確定 ,如下圖:
⑨、最后,我們將虛擬機強制關機后在開機,就會進入系統安裝界面(對于系統的安裝過程,我們就不再進行說明了),如下圖:
到此為止,我們的 Ceph 塊設備的實戰算是優點眉目,后續深層次的發揮還得我們繼續努力。
關于 Ceph 集群的實現,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2329558
關于 CephFS 文件系統的應用,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2330186
關于 Ceph 對象存儲,請參閱小弟的另外一篇博文:https://blog.51cto.com/4746316/2330455
三、總結
開始,我們在部署 Ceph 集群的時候,感覺時很麻煩,有時候甚至會很頭疼,尤其是遇到錯的時候,但是,當我們開始應用時,是不是感覺很簡單,很有樂趣?就是這樣,知識就是這么有趣,當我們經歷完苦澀后就會嘗到甜頭。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。