發表文章

目前顯示的是 五月, 2012的文章

Cobbler介绍

reference: http://hi.baidu.com/chenshake/blog/item/6f2e4f66860b9204aa184c75.html

Install nova essex(all-in-one) with dodai-deploy on ubuntu 12.04

reference: http://www.guanxiaohua2k6.com/2012/04/install-openstack-nova-essex-with-dodai.html

Install nova essex(multiple machines) with dodai-deploy on ubuntu 12.04

reference: http://www.guanxiaohua2k6.com/2012/04/install-openstack-nova-essexmultiple.html

Kickstart Options

reference: http://www.centos.org/docs/4/html/rhel-sag-en-4/s1-kickstart2-options.html

NADBCPRV

NADBCPRV

N: Need
why we need to do it
what thing should we do

A: Approach
how to achieve it

D: Design
approve that you can make it

B: Benefit
measurable benefit after we finish it

C: Competitive
can we compete with other people?

P: Plan
schedule

R: Resource
resource

V: Value
how much money we can gain?

手動mount一個 LVM的Patition

第一件事就是載入LVM所需要的module
$ modprobe dm-mod

接著就是找出partiton中的VG(Volume Group),以我的狀況為例,我將硬碟以usb連接到電腦後,由dmesg可以知道有 /dev/sda1, /dev/sda2兩個patitons,在以 fdisk -l /dev/sda 可以知道/dev/sda2是LVM格式。接著,我就執行:
$ pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [18.50 GB / 32.00 MB free]
Total: 1 [18.50 GB] / in use: 1 [18.50 GB] / in no VG: 0 [0 ]

從以上結果,我可以知道我有一個VG,叫做VolGroup00,他的PV(Physical Volume)是 /dev/sda2
接著我就執行:
$ vgchange -ay VolGroup00
$ ls /dev/VolGroup00/
LogVol00 LogVol01

這時候vgchange會在/dev下產生一個VolGroup00的目錄,並且在這個目錄下產生該有的device(其實是link到 /dev/mapper下)。然後我利用 ls就可以知道VolGroup00這個VG下有兩個LV(Logical Volume)。分別是LogVol00 與 LogVol01。然後我只要mount我要的就可以了。
$ mkdir /mnt/usb
$ mount /dev/VolGroup00/LogVol00 /mnt/usb/

OpenStack Cluster

環境描述:

1.3個node(各裝nova services),3個rabbitmq做cluster, 2個kvm hypervisor, 1個xen hypervisor

安裝步驟:

1. RabbitMQ Cluster install:
3個node各裝: aptitude -y install rabbitmq-server python-pika

2. Setup:

Set Cookie
Erlang nodes use a cookie to determine whether they are allowed to communicate with each other - for two nodes to be able to communicate they must have the same cookie.
The cookie is just a string of alphanumeric characters. It can be as long or short as you like.
Erlang will automatically create a random cookie file when the RabbitMQ server starts up. This will be typically located in /var/lib/rabbitmq/.erlang.cookie on Unix systems.
root@rabbit1:~# ls -l /var/lib/rabbitmq/.erlang.cookie -r-------- 1 rabbitmq rabbitmq 15 May 9 18:15 /var/lib/rabbitmq/.erlang.cookie root@rabbit1:~# echo "WIWYNNRABBITMQ" > /var/lib/rabbitmq/.erlang.cookie root@rabbit1:~# reboot; # to make cookie take effect

3. Starting independent nodes:

Clusters are set up by re-configuring existing Rab…

LVM

LVM:logical volume manager(逻辑卷管理);LVM屏蔽了底层磁盘布局,方便于动态调整磁盘容量。

一、创建逻辑卷的步骤:

1)通过fdisk 工具将磁盘转换为linux分区 2)通过pvcreate命令将linux分区转换成物理卷(PV); 3)通过vgcreate命令将创建好的物理卷处理成卷组(VG); 4)通过lvcreate命令将卷组分成若干个逻辑卷(LV); 5)对逻辑卷进行格式化,挂载,动态调整逻辑卷的大小,并且该操作不会影响逻辑卷(Lv)上的数据。

二、物理卷(PV)创建及管理具体操作步骤:

1)先查看linux分区,将未使用空间转换为物理卷(先使用fdisk建立普通分区)

[root@RHEL5 ~]# fdisk -l /dev/sdb #查看linux分区情况

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sdb1 1 500 4016218+ 83 Linux

/dev/sdb2 501 1000 4016250 83 Linux

/dev/sdb3 1001 1500 4016250 83 Linux

/dev/sdb4 1501 2610 8916075 5 Extended

/dev/sdb5 1501 2610 8916043+ 83 Linux

备注:/dev/sdb是一块新增加的磁盘,上面没有任何数据,也未挂载

2)将linux物理分区转变为物理卷

[root@RHEL5 ~]# pvcreate /dev/sdb{1,2} #将物理分区/dev/sdb{1,2}转变为物理卷

Phy…

Getting a Basic Cobbler server going on CentOS

reference: http://blog.milford.io/2012/03/getting-a-basic-cobbler-server-going-on-centos/

[ubuntu] ssh keygen – 登入免密碼

reference: http://blog.jsdan.com/2902

nova libvirt xen

reference: https://wiki.cc.gatech.edu/CERCS-infra/index.php/Jedi_xen

Ubuntu Orchestra, Juju and related technology survey

reference: https://docs.google.com/document/d/1LT6iazxQowF0yqrFBkpVDI1Ulc4MXtn9l8ZrobbnzXo/edit?pli=1

IPMI on Linux

reference : http://wiki.adamsweet.org/doku.php?id=ipmi_on_linux
http://netkiller.github.com/monitoring/ipmitool.html

MAAS的安装过程

reference: http://hi.baidu.com/chenshake/blog/item/e354f450c96ab17c1138c251.html

MAAS,应该算是Ubuntu 12.04大力推广的一个东西,折腾了2天,也总结一下。
我的理解,MAAS,就是ubuntu基于cobbler提供的接口,做的一个东西。

1:安装maas

一般来说,maas建议是一台单独的机器。所以你光盘启动,就会有一个maas选项。选择哪个安装就可以。你也可以装完希望,再安装maas的包。两者感觉还是有点区别。所以最好的方式,应该就是光盘安装,选择maas来安装。

2:设置dhcp和tftp

尽量不要在maas服务器上去配置dhcp和tftp,我遇到很多想不到的问题。当网络流量大的时候,就会出现无法获得IP。我的实验环境的路易斯的DDwrt,设置一下就可以,就是告诉节点,tftp服务器的地址是啥就可以。

如果希望也安装在maas机器上,参考https://wiki.edubuntu.org/SecurityTeam/TestingMAAS

3:修改配置文件

如果你直接运行 maas-import-isos 他会把32bit和64bit的内容都下载回来,并且下载速度很慢。我们需要做一些工作。
1:只下载64bit的ubuntu 12.04

2:设置临时下载路径,把下载好的内容放在目录下,这样可以减少到国外下载的时间。

/etc/maas 目录下,两个文件:import_isos和 import_ephemerals

需要注意的是:默认的就是注释掉的内容。如果你希望修改,就去掉注释就可以。红色表示我修改的内容。

# cat import_isos #RELEASES="oneiric precise" RELEASES="precise" #ARCHES="amd64 i386" ARCHES="amd64" #PRIORITY="critical" #LOCALE="en_US" #INTERFACE="eth0" #CONSOLE="ttyS0,9600n8" #KOPTS="priori…

Shared physical device

圖片
如果要使用第二種 "Shared physical device" 時需要經過手動設定才能使用.此時所有的 Virtual machine 的網路裝置就會像是串接在一個 Hub 或是 Switch 上,只要是同區段的 IP 都可以互通. 在 Linux 下網路的模式有一個東西叫做 Bridge mode,有點像將多個 NIC Adapter ports 透過一個虛擬出來的 Bridge(Switch) 全部串在一起,再透過一個虛擬出來的網 路裝置出去,這就像是把 Linux 當成一個 switch 來使用了.

在一般的 Linux 環境下的方法也很簡單:我們也可以透過下面幾個簡單的指令來產生自己所需 要的 Bridge 裝置出來.下面的圖示你可以很清楚的看出來虛擬 NIC 和實體 NIC 是如何透過 bridge 模式串接在一起.

1.目標是用 eth0 來產生一個 bridge(bri0) [root@benjr ~]# ifconfig eth0 0.0.0.0 [root@benjr ~]# brctl addbr bri0 [root@benjr ~]# brctl addif bri0 eth0 2.看這一些 eth 是在哪一個 bridge 上. [root@benjr ~]# brctl show bridge name bridge id STP enabled interfaces bri0 8000.001517785dd6 no eth0 virbr0 8000.000000000000 yes 3.設定一組 IP ,方便遠端管理使用. [root@benjr ~]# ifconfig bri0 192.8.1.3 [root@benjr ~]# ifconfig bri0 bri0 Link encap:Ethernet HWaddr 00:15:17:78:5D:D6 inet addr:192.8.1.3 Bcast:192.8.1.255 Mask:255.255.255.0 inet6 addr: fe80::215:…

Virtual network - virbr0

圖片
1.QEMU 會在你的 Linux 產生一個 bridge 虛擬裝置 "virbr0" .virbr0 不只是個單純的 NAT 而已,他是一個 NAT + DHCP 的架構,所有的 Virtual machine 都會透過 virbr0 來指派一個私 人網域 (private IP).預設為 192.168.122.2 ~ 192.168.122.254 (在他的設定檔中可以定義 其 DHCP 可指定的 IP 範圍).

2.其預設的 default gateway 為 192.168.122.1/24 ,所有在這架構下的 Virtual Machine 虛 擬機器的封包都必須透過這 NAT 去連結到其他的網路.

3. 如同一般的 NAT 所有的 Virtual Machine 虛擬機器都是被隱藏在 private 私人網域,所以 外部不能直接連接到 Virtual Machine 虛擬機器上.

虚拟化管理软件比较(Eucalyptus, OpenNebula, OpenStack, OpenQRM, XenServer, Oracle VM, CloudStack, ConVirt)

reference: http://zhumeng8337797.blog.163.com/blog/static/1007689142011713104131900/

OpenStack中的调度(Scheduler)算法初步研究

轉載:http://blog.sina.com.cn/s/blog_3fe961ae0100yqzd.html

Nova是OpenStack的云计算控制器,是Iaas系统的主要部分。
Nova中的调度模块scheduler文件夹下,其主要任务就是运用某种调度算法,选择出一个运算结点去执行VM instance。在nova版本2011.2中,scheduler模块下有以下几个文件:

__init__.py:
介绍nova.scheduler模块,没有实质性功能。

api.py:
模块对外提供的接口,负责处理所有关于调度的请求。

driver.py:
定义了Scheduler类,这是所有调度类的父类。子类必须实现Scheduler的schedule(self, context, topic, *_args, **_kwargs)函数("Must override at least this method for scheduler to work."),然后才能实现自己的调度算法。

chance.py:
定义了ChanceScheduler类,是随机调度算法实现。下面是chance.py的部分源代码:

class ChanceScheduler(driver.Scheduler): """Implements Scheduler as a random node selector.""" def schedule(self, context, topic, *_args, **_kwargs): """Picks a host that is up at random.""" #首先得到所有开启的主机的一个列表 hosts = self.hosts_up(context, topic) if not hosts: raise driver.NoValidHost(_("Scheduler was unable to locate a host" …

OpenStack Flat DHCP network, multiple interfaces, multiple servers

圖片
第一台 network interface

第二台 network interface
apt-get install bridge-utils

brctl addbr br100

第一台 nova.conf
第二台 nova.conf

glance_essex_source code analysis

圖片
Glance source tree:
main program 相依packages