婉兮清扬

案上诗书杯中酒之快意人生

Ubuntu 11.04 Server安装配置OpenNebula 3.0

发表时间:2011-11-27 21:41:33 评论:12

OpenNebula于10月3日发布3.0版本。这两天终于有时间测试了一把。

[管理节点]

全新安装的Ubuntu 11.04 Server操作系统,安装的时候同时安装OpenSSH Server和LAMP Server。管理节点的内网IP为192.168.1.1。

首先创建cloud组和oneadmin用户:

sudo mkdir -p /srv/cloud/
sudo groupadd -g 10000 cloud
sudo useradd -u 10000 -g cloud -m oneadmin -d /srv/cloud/one -s /bin/bash
sudo passwd oneadmin
sudo chown -R oneadmin:cloud /srv/cloud/
su -l oneadmin
ssh-keygen
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
echo "StrictHostKeyChecking no" > ~/.ssh/config
exit

安装配置NFS服务:

sudo apt-get install nfs-kernel-server
sudo pico /etc/exports

增加一行内容:

/srv/cloud  *(rw,fsid=0,nohide,sync,root_squash,no_subtree_check)

启动NFS服务:

sudo /etc/init.d/nfs-kernel-server start

安装OpenNebula所依赖的软件:

sudo apt-get install libsqlite3-dev libxmlrpc-c3-dev g++ ruby libopenssl-ruby libssl-dev ruby-dev
sudo apt-get install libxml2-dev libmysqlclient-dev libmysql++-dev libsqlite3-ruby libexpat1-dev
sudo apt-get install rake rubygems libxml-parser-ruby1.8 libxslt1-dev genisoimage scons
sudo apt-get install mysql-server
sudo gem install nokogiri
sudo gem install rake
sudo gem install  xmlparser

创建MySQL数据库:

mysql -u root -p
CREATE USER 'oneadmin'@'localhost' IDENTIFIED BY 'oneadmin';
CREATE DATABASE opennebula;
GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY 'oneadmin';
quit;

下载并安装OpenNebula前端软件:

su -l oneadmin
wget http://dev.opennebula.org/attachments/download/478/opennebula-3.0.0.tar.gz
tar -zxvf opennebula-3.0.0.tar.gz
cd opennebula-3.0.0
scons sqlite=no mysql=yes
./install.sh -u oneadmin -g cloud -d /srv/cloud/one

编辑~/.bash_profile,设置一些环境变量

export ONE_LOCATION=/srv/cloud/one
export ONE_AUTH=$ONE_LOCATION/.one/one_auth
export ONE_XMLRPC=http://localhost:2633/RPC2
export PATH=$ONE_LOCATION/bin:/usr/local/bin:/var/lib/gems/1.8/bin/:$PATH

执行.bash_profile,使得这些环境变量生效:

source ~/.bash_profile

编辑~/.one/one_auth,设置OpenNebula的用户名和密码:

mkdir ~/.one
echo "oneadmin:YOUR_PASSWORD" > ~/.one/one_auth
chmod 640 ~/.one/one_auth

编辑~/etc/oned.conf,设置OpenNebula所使用的数据库参数:

# DB = [ backend = "sqlite" ]

# Sample configuration for MySQL
DB = [ backend = "mysql",
server = "localhost",
port = 0,
user = "oneadmin",
passwd = "oneadmin",
db_name = "opennebula" ]

启动OpenNebula服务:

one start

[计算节点]

全新安装的Ubuntu 11.04 Server操作系统,安装的时候同时安装OpenSSH Sever和Virtualization。计算节点的内网IP为192.168.1.2。

首先安装虚拟化支持:

(重要说明,如果在计算节点上没有安装ubuntu-vm-builder和ruby这两个软件包,用onehost create命令可以添加该计算节点,但是其状态会显示为err。)

sudo apt-get install qemu-kvm libvirt-bin bridge-utils ubuntu-vm-builder ruby

安装NFS客户端:

sudo apt-get install nfs-common

编辑/etc/fstab,配置NFS客户端:(假定OpenNebula管理节点的IP是192.168.1.1)
192.168.1.1:/srv/cloud /srv/cloud nfs defaults 0 0

创建NFS目录并挂载NFS文件系统:

sudo mkdir -p /srv/cloud
sudo mount /srv/cloud

创建cloud组和oneadmin用户:

sudo groupadd -g 10000 cloud
sudo useradd -u 10000 -g cloud -m oneadmin -s /bin/bash
sudo usermod -d /srv/cloud/one oneadmin
sudo passwd oneadmin
sudo chown oneadmin:cloud /srv/cloud/

编辑/etc/libvirt/libvirtd.conf配置libvirt,将操作权限授予给cloud组:

unix_sock_group = "cloud"

编辑/etc/libvirt/qemu.conf配置libvirt,设置VNC:

vnc_listen = "0.0.0.0"

重启libvirt:

sudo service libvirt-bin restart
sudo chown :cloud /var/run/libvirt/libvirt-sock

编辑/etc/network/interface,根据实际的网络状况配置网桥。在这里我们使用eth1连接到一个私有的内网,使用192.168.1.*的内网IP。

auto eth1
iface eth1 inet manual

auto br1
iface br1 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
bridge_ports eth1
bridge_stp off
bridge_fd 0
bridge_maxwait 0

[管理节点]

添加计算节点(假定计算节点的IP是192.168.1.2):

onehost create 192.168.1.2 im_kvm vmm_kvm tm_shared

查看计算节点是否添加成功:

onehost list

这时候应该可以看到192.168.1.2出现在计算节点列表里面。如果计算节点配置正确的话,它的状态(STAT)应该显示为“on”。如果计算节点的状态显示为“err”,说明计算节点没有配置好。这时候可以做三个检查:(1)在管理节点上是否可以用无密码模式SSH登录到计算节点,(2)计算节点是否已经安装好ubuntu-vm-builder和ruby,和(3)在计算节点上oneadmin用户是否有权限控制KVM。

成功添加计算节点之后,我们下载一个预先配置好的VM进行测试。

mkdir ~/one-templates
cd ~/one-templates
wget http://dev.opennebula.org/attachments/download/170/ttylinux.tar.gz
tar xzf ttylinux.tar.gz

编辑small_network.net,定义一个网络:

NAME = "Small Network"
TYPE = FIXED

BRIDGE = br1
LEASES = [ IP="192.168.1.5"]
LEASES = [ IP="192.168.1.6"]
LEASES = [ IP="192.168.1.7"]
LEASES = [ IP="192.168.1.8"]
LEASES = [ IP="192.168.1.9"]
LEASES = [ IP="192.168.1.10"]
LEASES = [ IP="192.168.1.11"]
LEASES = [ IP="192.168.1.12"]
LEASES = [ IP="192.168.1.13"]
LEASES = [ IP="192.168.1.14"]
LEASES = [ IP="192.168.1.15"]

将如上所定义的网络添加到系统:

onevnet create small_network.net

列出系统上所有的网络(刚刚创建的Small Network 的ID可能是0):

onevnet list

编辑ttylinux.one,修改虚拟机参数:

NAME   = ttylinux
CPU    = 0.1
MEMORY = 64

DISK   = [
source   = "/srv/cloud/one/one-templates/ttylinux.img",
target   = "hda",
readonly = "no" ]

NIC    = [ NETWORK_ID = 0]

GRAPHICS = [ TYPE = "VNC"]

FEATURES=[ acpi="no" ]

在系统中创建该虚拟机:

onevm create ttylinux.one

列出系统上所有的虚拟机(刚刚创建的虚拟机的ID可能是0):

onevm list

如上命令列出了系统上所有虚拟机的状态,包括运行这些虚拟机的计算节点。如果需要了解某个虚拟机的详细状况,可以使用onevm show VM_ID命令,例如:

onevm show 0

这个命令会列出ID为0的虚拟机的所有相关信息,包括运行该虚拟机的计算节点,VNC端口号等等。找到这个端口号(假定为5900),就可以通过VNC客户端连接到该虚拟机的控制台,例如:

vncviewer 192.168.1.2:5900

[SunStone]

SunStone是OpenNebula的管理界面,可以同时为云管理员和终端用户提供服务。要启用SunStone,需要在管理节点上执行如下操作:

sudo apt-get install rails thin curl
sudo gem install json sinatra thin
sudo gem install sequel sinatra-sequel
sudo ln -s /usr/bin/rackup1.8 /usr/bin/rackup

启动SunStone服务:

su -l oneadmin
./bin/sunstone-server start

在var/sunstone.log里面找到SunStone所使用的端口号(我这里看到的是9869),然后通过浏览器访问SunStone(假定管理节点的IP是192.168.1.1):

http://192.168.1.1:9869/

登录进入SunStone之后,可以查看和设置计算节点、虚拟机、网络、模板、映像、用户、群组、权限 。在缺省的情况下,OpenNebula自带的会计与统计功能没有启用,因此看不到计算节点和虚拟机的监控信息。如果要启用这个功能,需要启动oneacctd服务。

sudo gem install json sqlite3 sequel
oneacctd start

这个缺省的设置使用sqlite记录监控信息。如果需要使用MySQL记录监控信息,则需要进行如下步骤:

sudo gem install mysql

修改etc/acctd.conf中的数据库连接URI:

:DB: mysql://db_username:db_password@localhost/opennebula  (需要替换URI中的db_username和db_password)

重新启动 acctd:

oneacctd stop
oneacctd start

进一步的设置可以参考etc/acctd.conf。

[其他说明]

虚拟机的在线迁移,需要配置好所有计算节点的/etc/hosts和/etc/hostname,确保在所有在计算节点上都能够根据主机名来寻找到其他计算节点,不然的话在线迁移会失败。此外,所有节点(包括控制节点和计算节点)之间需要配置无密码SSH登录。

数据库的用户名和密码尽可能不要包含:和@字符,否则会出现数据库连接错误。

 

饮食杂记 -- 香草烤海鲈鱼

发表时间:2011-11-24 20:23:04 评论:0

材料:

海鲈鱼一条,面粉少许,香草少许,盐少许。

做法:

海鲈鱼开膛去鱼鳔洗干净,鱼身两侧各斜切三刀,沥干水分备用。把香草和盐拌到面粉中,然后将面粉薄薄地涂在鱼身上。将鱼放在通风处凉十分钟左右。热锅,放橄榄油,在油略滚时将鱼放入锅中煎炸,直到鱼身两边的面粉变成浅黄色。将鱼从锅中取出,用铝箔纸裹好,放入烤箱中用200摄氏度烤30分钟即可食用。

又另:

面粉不要裹得太厚,薄薄的一层即可。裹面粉之前要尽可能把鱼身弄干。

再见天涯

发表时间:2011-11-18 15:08:36 评论:2

由于家里孩子年幼,日夜啼哭,导致最近上班状态不佳,工作效率极低。为了避免影响公司的正常运作以及身边同事的精神面貌,特向公司提出辞职。

11月18日是本人在天涯上班的最后一天。谢谢各位同事在过去8 个半月当中的支持。

妆成每被秋娘妒

发表时间:2011-11-15 09:18:28 评论:2



妆成每被秋娘妒
蒋婉清,七岁

姊妹俩

发表时间:2011-11-07 15:54:52 评论:3



你一个,我一个。有好吃的咱们俩分享。呀,好酸!



姐姐你的花儿好漂亮。给我看一看。



狗狗也是咱们俩的。一起玩。



调皮的小黄,是不是想偷吃?



呀!干啥?想干啥?

生命在几间

发表时间:2011-11-07 08:47:01 评论:2

佛问沙门。人命在几间。对曰。数日间。佛言。子未知道。复问一沙门。人命在几间。对曰。饭食间。佛言。子未知道。复问一沙门。人命在几间。对曰。呼吸间。佛言。善哉。子知道矣。

--《四十二章经.生即有灭》

唉,纪念一下俺家第一次跟狗妈出门玩耍就被车压了的小狗娃。本来有七只狗娃的,现在只剩下六只了。

捉狗狗

发表时间:2011-11-05 11:28:52 评论:0



你看那边有一只,小小的小狗狗。我轻轻的爬过去,想要抓住它。



为什么,狗狗要躲开?为什么,狗狗要逃跑?



哼哼,马上就要捉到你啦。



耶!两个!

晒娃娃

发表时间:2011-11-05 11:15:13 评论:6



坐吊床,好舒服。栏杆外面是我们家的荷塘。上个月来了两个台风,把我们家的荷花和荷叶都打烂了,可是荷叶很快又长了出来。新长的荷叶嫩绿嫩绿的,可好看了。



新摘下来的红心石榴耶。你要不要也来一口?



有只小狗狗要来抢我的石榴。我跑,我跑!



呀,我被狗狗们包围了!

Eucalyptus, OpenStack, OpenNebula社区活跃度比较

发表时间:2011-10-11 22:55:52 评论:1

最近抽空做了一下Eucalyptus、OpenStack和OpenNebula项目的社区活跃度比较。比较的依据是自2009年来这三个项目官方论坛和邮件列表每个月所产生的讨论主题数、讨论帖子数、以及参与讨论的总人数。为了获取这些数据,我写了一个程序自动地从这三个项目的网站下载了所有的论坛和邮件列表信息,并且从这些信息中分析提取出我所需要的数据。这个程序也许不够完美,但是数据的准确程度应该可以控制在1%以内。程序提取的数据被导入LibreOffice中进行进一步分析,最后生成图形化的分析图表。

与Eucalyptus项目相关的论坛数据来自http://open.eucalyptus.com/forum。在此次分析中仅采用Eucalyptus General和Eucalyptus Support两个论坛的数据。与OpenStack项目相关的邮件列表数据来自http://www.openstack.org/community/。在此次分析中仅采用Developer List的数据。与OpenNebula项目相关的邮件列表数据来自http://www.opennebula.org/community:mailinglists。在此次分析中仅采用Users Mailing List的数据。忽略其他论坛或者邮件列表数据的原因包括(1)它们的性质更接近于官方公告而非社区讨论;或者(2)相关讨论的主题数、帖子数、总人数过少,基本上不会影响分析结果。

如下三个图表,分别是这三个项目自2009年来每个月所产生的讨论主题数、讨论帖子数和参与总人数。







显而易见,OpenNebula社区自2009年以来一直保持良好的发展势头,其讨论主题数、讨论帖子数和参与讨论的总人数都在稳步增长。但是该项目在2011年4 月之后开始呈现衰落的势头。Eucalyptus社区在2010年6 月之前发展迅猛,无论是讨论主题数、讨论帖子数和参与讨论的总人数都是OpenNebula社区的两到三倍左右。但是Eucalyptus社区自2010年6 月之后逐步衰落,尽管在2010年10月前后有过数次复兴的趋势,但是最终日渐式微并于2011年5 月前后降低到OpenNebula社区的同等水平。新兴的OpenStack社区在创立初期发展缓慢,但是从2011年1 月起呈现出爆发的势头。目前OpenStack社区的讨论主题数、讨论帖子数和参与讨论的总人数都在OpenNebula社区和Eucalyptus社区之上,但是尚未达到Eucalyptus社区在2010年6 月的规模。

通常来讲,一个讨论主题得到的回复数越多,表明该主题的讨论越深入。一个论坛或者邮件列表如果只有主帖而没有回复,说明这个社区的参与程度很低。因此,平均意义上的“讨论帖子数/讨论主题数”则反映了一个社区的参与程度,这里我们暂且称之为参与度(Participation Ratio)。下面这个图表,分别是这三个社区自2009年来每个月的“讨论帖子数/讨论主题数”。



可以看出,OpenNebula社区和Eucalyptus社区的参与度基本上是接近的。在2010年8 月以前,Eucalyptus社区的参与度略高于OpenNebula社区。在2010年8 月以后,OpenNebula社区的参与度略高于Eucalyptus社区。但是OpenStack社区的参与度从2010年6 月项目开始之日起就高于OpenNebula社区和Ecualyptus社区。除了个别异常月份之外,OpenStack社区的参与度通常是其他两者的两倍甚至是更高。

由于时间有限的原因,这个帖子先陈述一下目前我们看到的现象。过两天有空了,再详细分析一下这些现象后面的原因。

台风进行时

发表时间:2011-09-29 14:38:38 评论:2



昨天晚上球球(我们家二娃)发烧,39度。晚上起来物理降温三趟。今天起来的时候就好了。

昨天晚上10点,收到滨海九小的短信通知,说是今天上午上课到11点后开始放台风假。早上起来,发现风雨已经很大,就给班主任发了个短信,说是清扬婉兮今天早上也不去了。路上堵车,到公司的时候已经是9 点,在楼下又收到滨海九小的短信通知,要求所有家长迅速到学校去把娃娃们接回家。看来早上让清扬婉兮翘课的决定简直是英明神武。

早上10点,收到园子那边打来的电话,园子里好多大树都被风刮倒了。

公司所在的办公楼不断停电来电。做事情看来是不行了,干脆在11点的时候走人回家做饭。

下午2 点,又收到园子那边打来的电话,小熊下了六只小狗娃。另外,园子里头断电了。

在家学些Pylons。

 

 
更晚内容 更早内容

云与清风常拥有,
冰雪知音世难求。
击节纵歌相对笑,
案上诗书杯中酒。

2020年12月31日
洛杉矶

最新评论


2026-07-23 11:37:04
qyjohn 评论了 《几句翻译》

2026-07-21 20:11:28
wells 评论了 《几句翻译》

2025-11-15 06:29:51
qyjohn 评论了 《青桔》

2025-11-14 01:55:04
wells 评论了 《青桔》

2025-10-24 18:04:06
Ted Wang 评论了 《关于作者(About Me)》

2025-03-27 08:28:09
Max 评论了 《父亲走了》

2025-03-08 04:13:52
W 评论了 《我不想颂扬普京大帝》

2024-07-22 16:02:03
云思 评论了 《无题》

2024-06-27 10:01:54
yiming 评论了 《致访客(Welcome)》

2024-05-06 08:50:06
qyjohn 评论了 《致访客(Welcome)》

2024-05-03 19:49:00
jimmie 评论了 《致访客(Welcome)》

2024-02-19 03:32:57
林小静 评论了 《埋剑渡》

2024-01-05 03:54:28
路过者 评论了 《2023年度盘点》

2024-01-04 10:22:05
qyjohn 评论了 《致访客(Welcome)》

2024-01-04 08:05:13
qyjohn 评论了 《2023年度盘点》