Sharing

2011年8月18日 星期四

OpenStack Create Instance

OpenStack Dashboard 裝好後, 就準備透過 Dashboard 來 Luanch Instance. 不過看了一下 Dashboard 的介面真的是很陽春, 也不能透過它上傳 image. 根據 OpenStack 的文件來看, 它應該有支援各式各樣的 image format.
  • raw
  • vmdk (common disk format)
  • vhd (vmware、Xen 、Virtualbox)
  • vdi (VirtualBox)
  • qcow2 (Qemu/KVM)
  • iso
  • ovf
  • aki 、ari 、ami (Amazon)
不過因為還不熟要怎麼操作, 就先根據他網站上的說明來上傳 image

下載一個己經做好的 image


wget http://uec-images.ubuntu.com/releases/10.04/release/ubuntu-10.04-server-uec-amd64.tar.gz

因為是平台是 Ubuntu, 他有一個工具可以直接把 .tar.gz 包起來的 image 安裝進去
uec-publish-tarball ubuntu-10.04-server-uec-amd64.tar.gz mybucket


會看到類似以下的結果

Fri Aug 19 11:44:38 CST 2011: ====== extracting image ======
Warning: no ramdisk found, assuming '--ramdisk none'
kernel : lucid-server-uec-amd64-vmlinuz-virtual
ramdisk: none
image  : lucid-server-uec-amd64.img
Fri Aug 19 11:44:44 CST 2011: ====== bundle/upload kernel ======
Fri Aug 19 11:44:45 CST 2011: ====== bundle/upload image ======
Fri Aug 19 11:45:21 CST 2011: ====== done ======
emi="ami-00000006"; eri="none"; eki="aki-00000005";


輸入 euca-describe-images, 觀察一下是否有正確 import

IMAGE   aki-00000005    wcloud/lucid-server-uec-amd64-vmlinuz-virtual.manifest.xml              available   public          x86_64  kernel
IMAGE   ami-00000006    wcloud/lucid-server-uec-amd64.img.manifest.xml          available       public              x86_64  machine aki-00000005


從 dashboard 也可以看到有變化, 在 Community Images 的區域多了一個 ami-00000006, 不過我有兩件事還弄不清楚
  1. 為什麼看不到 aki-00000005
  2. 另外是從 OpenStack 的文件看起來, image 應該可以設定只有特定 project 才能使用, 而非所有的 project 都看的到, 但我故意去創建另一個 project 時, 卻發現裡面也有同樣的 image 可以使用, 不知道是不是因為在同一個 user 下的所有 project 都共享 image ?! 




接下來你就可以透過右邊的按鍵去 luanch 一個新的 virtual machine, 一開始他會先設定網路, 後來就會分到分配到一個 ip, 這個 ip 應該是根據之前創建的網路給的 fixed ip, 整體速度還滿快的


然後設定一下權限, 就可以ssh 連進去囉! 帳號和密碼都是 ubuntu

euca-authorize -P icmp -t -1:-1 default
euca-authorize -P tcp -p 22 default



============== 亂玩時間 ===========================================

進去後可以試著在 /home/ubuntu 下製造一個 .txt, 然後在裡面下關機的指令

sudo shutdown


從 dashboard 好像看不出來變化, 仍然是看到這個 instance 正在 running, 不過其實從外面己經連不進了, 之後再重新 reboot 他, dashboard 沒有這個功能, 只好從 command line 來下指令

euca-reboot-instances i-0000002f
重啟之後就可以再連進去, 發現東西還在, 可是如果你是用 dashboard 的 "Terminate" 功能就真的會把 image 砍掉了

=============== Where is image ? ==================================
找了一下他把 image 放在那邊, 從 nova.conf 中可以發現在 /var/lib/nova 裡面

先觀察一下 _base 下的東西


再觀察一下 instance-00000030 下的狀況


目前是猜測他有利用 hypervisor 的功能, 以 _base 為底, 然後只針對有改變的部份做處理, 所以在 create instance 時還滿快的, 不需要真的把整個 image copy 一份, 還滿聰明的作法





沒有留言: