讀古今文學網 > OpenStack系統架構設計實戰 > 2.8 nova-objectstore >

2.8 nova-objectstore

Nova本身自帶了一個對像存儲服務nova-objectstore,nova-objectstore是一個簡單的代碼,僅僅模擬了對象存儲的幾個接口,使用本地文件系統來存儲虛擬機鏡像。真正大規模部署需要使用S3、Swift等模塊。但在簡單環境下,nova-objectstore也夠用了。nova-objectstore將用戶上傳的虛擬機模板文件image存放於/var/lib/nova/images目錄下,看以下/var/lib/nova/images內容:

root@nova-controller:/var/lib/nova/images# ls03aebd2e 0abf52fb 12fe2610 16cb8aa6 2e6b3fd1- 6217df26 644208f3 765acbffroot@nova-controller:/var/lib/nova/images#

03aebd2e等目錄對應的是鏡像的ID,在真正的對象存儲中,每個鏡像都對應一個對象的ID,這裡用文件夾來區分模擬。

root@nova-controller:/var/lib/nova/images/03aebd2e# lsimage info.jsonroot@nova-controller:/var/lib/nova/images/03aebd2e#

進一步到子目錄裡查看,鏡像是對應的虛擬機文件,info.json描述了模擬的對象存儲的屬性信息。

root@nova-controller:/var/lib/nova/images/03aebd2e# cat info.json {"status": "active", "location": "/var/lib/nova/images/03aebd2e/image", "is_public": true, "container_format": "ami", "disk_format": "ami", "properties": {"kernel_id": 180310779, "image_location": "uecbucket/maverick-server-uec-amd64.img.manifest.xml", "image_state": "available", "project_id": "nubeblog", "architecture": "i386"}, "id": 61783342}root@nova-controller:/var/lib/nova/images/03aebd2e#

事實上,nova-compute在獲取nova-objectstore上的鏡像文件時更為簡化,Nova會將/var/lib/nova/images目錄使用NFS直接掛接到nova-compute節點上。

root@nova-compute-1:~# mount/dev/mapper/nova--controller-root on / type ext4 (rw,errors=remount-ro)proc on /proc type proc (rw,noexec,nosuid,nodev)none on /sys type sysfs (rw,noexec,nosuid,nodev)none on /sys/fs/fuse/connections type fusectl (rw)none on /sys/kernel/debug type debugfs (rw)none on /sys/kernel/security type securityfs (rw)none on /dev type devtmpfs (rw,mode=0755)none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)none on /dev/shm type tmpfs (rw,nosuid,nodev)none on /var/run type tmpfs (rw,nosuid,mode=0755)none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)/dev/cciss/c0d0p1 on /boot type ext1-(rw)10.46.169.194:/var/lib/nova/images on /var/lib/nova/images type nfs (rw,addr=10.46.169.194)root@nova-compute-1:~#