2012年2月28日 星期二

[Virtualization] libvirt 簡介

Libvirt 為一套提供方便的方法管理 VM 及其他虛擬功能 ( 例如:Storage 或網路 ) 的 C 語言軟體。這些軟體包含 API 函式庫、daemon (libvirtd) 及一個命令提示工具 (virsh)。
  Libvirt 的主要目標為,提供一個簡單的方法管理多個不同的虛擬化提供者或 hypervisor。舉例來說,命令 "virsh list --all" 可列出所有支援的 hypervisor (KVM、Xen、VMWare ESX 等等 )中存在的 VM。

Libvirt 所提供之主要功能為:

1 ) VM 管理:開始、停止、暫停、儲存、回復及遷移。

2 ) 支持遠端機器控制 (Remote machine support):運行 libvirt daemon 的機器皆可使用 libvirt 的所有功能,包含遠端控制機器。更多資訊,可參考 http://libvirt.org/remote.html

3 ) Storage 管理:運行 libvirt daemon 的機器可管理不同型態的 storage。更多資訊,可參考 http://libvirt.org/storage.html

4 ) 網路介面管理:運行 libvirt daemon 的機器可管理 physical 和 logical 網路介面。更多資訊,可參考 https://fedorahosted.org/netcf/

5 ) 虛擬 NAT 與路由基礎網路 (Route based networking):運行 libvirt daemon 的機器可管理與產生虛擬網路 (virtual network)。更多資訊,可參考 http://libvirt.org/archnetwork.html

Libvirt 支援:

1 ) KVM/QEMU
2 ) Xen
3 ) LXC - Linux container system
4 ) OpenVZ - Linux container system
5 ) User Mode Linux
6 ) VirtualBox
7 ) VMware ESX and GSX
8 ) VMware Workstation and Player
9 ) Microsoft Hyper-V

2012年2月13日 星期一

[OpenStack] OpenStack Dashboard 簡介與安裝

簡介:
OpenStack Dashboard 是一個以 web 為基礎的視窗提供使用者透過 OpenStack APIs 與 OpenStack Compute 雲控制器溝通。

系統需求:
1. 必須運行 OpenStack Compute 安裝並包含 Identity 與 Keystone 服務
2. 必須知道 Identity 與 Compute 的 URL
3. 必須安裝 git
4. Python 2.6 或 2.7

安裝步驟:
1. 安裝 OpenStack Dashboard 框架,其中包含 Apache 及相關模組

sudo apt-get install -y libapache2-mod-wsgi
sudo apt-get install -y openstack-dashboard openstackx python -sqlite

2. 配置 Dashboard

2.1 開啟 mysql,並輸入 root 使用者的密碼

mysql -u root -p

2.2 配置 MySQL,建立 dash 資料庫

mysql> CREATE DATABASE dash;

2.3 建立使用者,並擁有 dash 資料庫之最高權限

mysql> GRANT ALL ON dash.* TO 'dash'@'%' IDENTIFIED BY 'yourpassword';

2.4 於 /local/local_settings.py 中修正下列選項:

● DATABASE:

DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.mysql',
          'NAME': 'dash',
          'USER': 'dash',
          'PASSWORD': 'yourpassword',
          'HOST': 'localhost',
          'default-character-set': 'utf8'
      },
  }


2.5 運行 syncdb 指令初始化資料庫

# If using Cloud Builders packages, do this:
  cd /var/lib/dash
  PYTHONPATH=/var/lib/dash/ python dashboard/manage.py syncdb

  # If using Managed IT packages, do this:
  /usr/share/openstack-dashboard/dashboard/manage.py syncdb


你將會看見下列結果輸出

Installing custom SQL ...
  Installing indexes ...
  DEBUG:django.db.backends:(0.008) CREATE INDEX `django_session_c25c2c28` ON`django_session` (`expire_date`);; args=()
  No fixtures found.


3. 重啟並運行 Apache 伺服器

sudo /etc/init.d/apache2 restart
sudo restart nova-api


如果安裝正確,打開瀏覽器並輸入 http://localhost 你將會看見 OpenStack Dashboard。

2012年2月7日 星期二

[OpenStack] OpenStack Compute (Nova) 簡介

Nova 的特色及功能如下:

1. Instance 生命週期 (life cycle) 管理

2. 計算資源管理

3. 網路及認證

4. REST-based API

5. 最終一致的非同步通訊

6. 支援 Xen, XenServer/XPC, KVM, UML, VMware, vSphere and Hyper-V

OpenStack Compute 組件包含:

1. API Server (nova-api):提供外界對於雲基礎架構的管理與介面。

2. Message Queue (rabbit-mq server)

3. Compute Workers (nova-compute):處理 instance 的生命週期管理,透過 Message Queue 接收

並處理生命週期管理之請求。

4. Network Controller (nova-network):處理主機網路辨別。例如:分配 IP 位址、辨別專案

VLAN 等等。

5. Volume Worker (nova-volume):用於管理 LVM-based instance volume。功能如新增、刪除及從

instance 掛 ( 卸 ) 載一個 volume。

6. Scheduler (nova-scheduler):對應 nova-API 呼叫至正確的 OpenStack 組件。

參考資料:

1. OpenStack Compute Starter Guide

    - http://docs.openstack.org/diablo/openstack-compute/starter/content/

2012年2月3日 星期五

[OpenStack] 「手動」安裝 OpenStack 後之後續設定

[OpenStack] 在 Ubuntu 11.10 上「手動」安裝 OpenStack 中已將「手動」安裝之前置作業及資料庫設定完成,接下來的後續設定部分,將於本篇中介紹。

首先,必須設定 nova.conf 檔案中的旗標。nova.conf 位在 /etc/nova 下,原始檔案內容如下:

--daemonize=1
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova


相關旗標資訊可參考 /bin/nova-api --help 或 OpenStack Compute Administration 手冊中 Setting Flags in the nova.conf 章節。

設定 nova.conf 後,必須產生一個 "nova" 群組

sudo addgroup nova

將 nova.conf 的權限設定給予 root,並保證使用者 nova 隸屬於 nova 群組

sudo usermod -g nova nova
chown -R root:nova /etc/nova
chmod 640 /etc/nova/nova.conf


緊接著設定 OpenStack Compute 環境,利用 Identity 服務保證資料庫 schema 的及時性。

nova-manage db sync
nova-manage user admin <user_name>
nova-manage project create <project_name> <user_name>
nova-manage network create <network-label> <project-network> <number-of-networks-in-project> <addresses-in-each-network>


旗標與環境設定完成後,需產生 Credentials (zip file)。

mkdir –p /root/creds
/usr/bin/python /usr/bin/nova-manage project zipfile $NOVA_PROJECT $NOVA_PROJECT_USER /root/creds/novacreds.zip


解壓縮 credentials 的 zip 檔在家目錄下,並加入至安裝環境中。

unzip /root/creds/novacreds.zip -d /root/creds/
cat /root/creds/novarc >> ~/.bashrc
source ~/.bashrc


最後,別忘了啟動存取 VM;使用 "euca-authorize" 指令啟動存取。

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


如已使用 "euca-authorize" 指令,但無法透過 ping 或 SSH 方式進行存取 VM,請使用下列方法解決問題。

killall dnsmasq
service nova-network restart


安裝至此,已完成所有安裝與設定之步驟,請帶著愉快的心情使用 OpenStack 吧!:D