發表文章

目前顯示的是 十一月, 2012的文章

在Ubuntu 12.04 上安裝Open vSwitch

雲計算時代我們已經虛擬化了服務器硬件,現在我們有無數的虛擬機跑在服務器硬件上,看上去很美好,但是任務還沒有完成,這麼多的虛擬機都依賴物理服務器(所在)的網絡端口、網絡和交換機(除了物理依賴還依賴這些物理硬件上的軟件配置),這讓底層變動成為一個大問題,比如我們想改變服務器A 上的網絡設置(192.168.2.0 改成172.16.2.0)或者物理移動服務器A 到另一機房,那麼服務器A 上運行的虛擬機怎麼辦呢?逐個改動配置很麻煩。有沒有一種辦法把虛擬機所在的網絡和物理服務器的網絡隔開呢(雖然可以用VLAN,但是還是不夠)?這正是網絡虛擬化正在做的,通過軟件的方式形成交換機部件(vSwitch),讓各個虛擬機和虛擬交換機連接起來而不用去理會真實物理機和物理交換機。比如,讓Host A 上的VM02 和Host B 上的虛擬機VM10 連成一個網絡而不用理會虛擬機(VM)所在服務器(Host)的網絡設置。 網絡虛擬化或者軟件定義網絡(Software Defined Network, SDN)的應用遠不止這些,任何理解SDN 的技術人員都不應該懷疑SDN 的未來,優勢是如此的明顯以致於沒辦法懷疑,這也是為啥VMware願意花12億美金買Nicira(軟件定義網絡的先驅)。 要使用SDN/OpenFlow 就必須有支持OpenFlow 協議的物理(或軟件)交換機,OpenvSwitch 就是這麼一個支持OpenFlow 協議的開源虛擬交換機。我們從安裝虛擬交換機Open vSwitch 開始來慢慢了解網絡虛擬化吧。 安裝必要軟件包: $ sudo -i # apt-get install kvm libvirt-bin openvswitch-controller openvswitch-brcompat openvswitch-switch openvswitch-datapath-source 啟動Open vSwitch 服務,如果報錯FATAL: Error inserting brcompat_mod 模塊錯誤則需要編譯和加載brcompat_mod 這個模塊,這個模塊是openvswitch 為了兼容linux bridge 而來的,有些程序使用Linux bridge(比如brctl),這些程序為了能在openvswitch 下繼續使用將需要這個br…

Linux 系统 xen4.1.0 编译安装

使用的系统是linux rhel5.4 先下载相关的文件, xen-4.1.0.tar.gz 这个到www.xen.org可以下载到: http://www.xen.org/products/xen_archives.html 内核源码包: 最新内核取自 git clone git:// git.kernel.org/pub/scm/ linux/kernel/git/jeremy/xen. git l 使用的系统是linux rhel5.4 先下载相关的文件, xen-4.1.0.tar.gz 这个到www.xen.org可以下载到:http://www.xen.org/products/xen_archives.html 内核源码包:最新内核取自 git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen 在asdfasdfzxc的博客中有一个链接,已经包含了xen的版本跟内核的版本,内核版本已经打过补丁,现在用的是他的包。下载地址:http://u.115.com/file/aqppqqc4# xen4.1.zip 。网上有报说,linux将在2.6.39以后的内核中集成xen,以后就省事了 先测试下相应的安装包是否齐全。包解开后,有3个文件,config.txt跟xen包及内核包。 在xen4.1.0下面有一个tools/check/chk脚本,执行 ./chk build 跟./chk install测试 一般来说需要dev86/iasl/python-devel/libX11-devel 等rpm包,可以用yum安装,其中iasl是xen3.4.1里带的 先 安装内核,跟普通的内核编译没什么两样,默认的,我们系统只支持8个loop设备,这里可以修改drivers/block/loop.c 文件的1615行,把 nr = 8 改成 nt = 32以使默认运行32个loop设备,当时也可以在编译内核后/etc/sysctl.conf 配置文件里修改。 cp ../config.txt .config make oldconfig make bzImage #编译大内核(如果想编译压缩形式的内…

linux 系统 xen 3.4.1 rpm安装

从http://www.gitco.de/repo/3.3.2下载相关文件 下载http://www.gitco.de/repo/GITCO-XEN3.3.2_x86_64.repo 1、配置yum 修改repo指向所有的光盘文件 2、配置xen.repo,内容如下: [xen3.3.2] name=RHEL/CentOS-$releasever - GITCO XEN3.3.2 baseurl=file:/// 从http://www.gitco.de/repo/3.3.2下载相关文件 下载http://www.gitco.de/repo/GITCO-XEN3.3.2_x86_64.repo 1、配置yum 修改repo指向所有的光盘文件 2、配置xen.repo,内容如下: [xen3.3.2] name=RHEL/CentOS-$releasever - GITCO XEN3.3.2 baseurl=file:///var/ftp/xen3.3.2 gpgcheck=0 enabled=1 执行yum list查看 执行yum grouplist查看组(在yum仓库用http方式时没有组的信息,用本地的方式可以,再研究) 卸载旧版本 yum groupremove Virtualization 安装新版本 yum groupinstall ‐y Virtualization,在安装时可能会碰到会跟一些包冲突,需要把有冲突的包先删除 xm dmesg查看是否安装成功 检查是否支持VT: #xm info |grep xen_cap xen_caps : xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p # xm dmesg |grep -i vmxon (XEN) VMXON is done (XEN) VMXON is done 如果出现上述字段则计算机支持VT,否则很有可能是不支持或者BIOS禁用了。 也可以通过 xm dmesg或者cpuinfo等等方式查询,这里就不详细描述了。 升级到3.4.1,提示unpack libvirt-client-0.7.0-6.e15.x86_64 /usr/lib64/libvirt.so.0.7.0 版本回退 yum groupremove Virtu…

Linux 系统 xen 编译安装

安装准备: 因为编译时需要从internet上下载一些补丁,所以先从外网下载。 hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg 注:在下载之前需要先安装mercurial工具,这个是分布式版本控制软件,类似于svn,目前安装的是mercurial-1.3.1.tar.gz 安装准备: 因为编译时需要从internet上下载一些补丁,所以先从外网下载。 hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg 注:在下载之前需要先安装mercurial工具,这个是分布式版本控制软件,类似于svn,目前安装的是mercurial-1.3.1.tar.gz 把下载的文件发到内网。 tar zxf xen-3.4.2.tar.gz -C /usr cp -r linux-2.6.18-xen.hg/ /usr/xen-3.4.2/ #studom是xen中的一个补丁集,可以增加性能,网上有说可以把这块去掉(具体步骤可以到网上去找),因为性能的原因这里还是没有去,在编译时会需要去下载一些文件: grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz pciutils-2.2.9.tar.bz2 zlib-1.2.3.tar.gz 这里要提前下载,并把它放到/usr/xen-3.4.2/stubdom/下,就可以跳过这一步 cp stubdom/* /usr/xen-3.4.2/stubdom/ 2、修改配置文件 vi buildconfigs/src.hg-clone 去掉从网上更新补丁的代码,最后的示例如下: # Mercurial HG ?= hg LINUX_SRCDIR ?= linux-$(LINUX_VER)-xen.hg # Repository to clone. XEN_LINUX_HGREPO ?= $$(sh buildconfigs/select-repository $(LINUX_SRCDIR) $(LINUX_SRC_PATH)) # Set XEN_LINUX_HGREV to update to a particlar revision. XEN_LI…

openstack 自动安装脚本 AutoStack

脚本下载地址: http://code.google.com/p/autosetup/ AutoStack是一个自动安装openstack的脚本,,openstack初学都可以试一下 服务器要求: 双网卡:eth0为外网,eth1为内网,配置本机的IP,fix ip ,floating ip,使用都请修改脚本中的IP ################### 脚本下载地址: http://code.google.com/p/autosetup/ AutoStack是一个自动安装openstack的脚本,,openstack初学都可以试一下 服务器要求: 双网卡:eth0为外网,eth1为内网,配置本机的IP,fix ip ,floating ip,使用都请修改脚本中的IP ###################################### export LOCAL_IP=192.168.14.114 export PUBLIC_IF='eth0' export PRIVATE_IF='eth1' export BRIDGE_IF='br100' export FIXED_RANGE='192.168.17.0/24' export FIXED_RANGE_PRE='$(echo ${FIXED_RANGE}|cut -d. -f1-3)' export FLOATING_IP='192.168.14.20/27' ######################################

安裝log.io 實時日誌監控工具

圖片
日誌是個好東西,對技術人員來說寫日誌能紀錄成長,分享經驗;對機器來說紀錄日誌能及時發現錯誤,為日後的排錯提供信息。如果還在一台機器上用tail -f監聽單個日誌或者用multitail監聽多個日誌也太out了,我們需要一種工具能紀錄上百台機器、不同類型的日誌,並最好能匯集到一個界面裡方便查看,最好還是實時的。log.io就是這樣一個實時日誌監控工具,採用node.js + socket.io開發,使用瀏覽器訪問,每秒可以處理超過5000條日誌變動消息。有一點要指出來的是log.io只監視日誌變動並不存儲日誌,不過這個沒關係,我們知道日誌存儲在哪個機器上。 和其他的監控工具一樣,log.io 也採用服務器-客戶端的模式。log.io 由兩部分組成:server 和harvester, server 運行在機器A(服務器)上監視和紀錄其他機器發來的日誌消息;log harvester 運行在機器B(客戶端)上用來監聽和收集機器B上的日誌改動,並將改動發送給機器A,每個需要紀錄日誌的機器都需要一個harvester. 在機器A 和B 上
因為log.io 基於node.js,所以在服務器和客戶端都要安裝node.js,這裡採用編譯安裝的辦法,首先安裝需要的依賴包: $ sudo apt-get install g++ make git libssl-dev pkg-config 下載node.js 源代碼,編譯並安裝: $ wget http://nodejs.org/dist/v0.8.14/node-v0.8.14.tar.gz $ tar zxvf node-v0.8.14.tar.gz $ cd node-v0.8.14/ $ ./configure $ make $ sudo make install 安裝NPM: $ curl https://npmjs.org/install.sh | sudo sh 安裝log.io(包含了log server 和log harvester) $ sudo npm config set unsafe-perm true $ sudo npm install -g --prefix=/usr/local log.io 在機器A 上啟動server
$ sudo log.io server sta…

系統管理:nbd_網絡塊設備_的使用

一.NBD簡介
NBD(Network Block Device)讓你可以將一個遠程主機的磁盤空間,當作一個塊設備來使用.就像一塊硬盤一樣. 使用它,你可以很方便的將另一台服務器的硬盤空間,增加到本地服務器上. NBD與NFS有所不同.NFS只是提供一個掛載點供客戶端使用,客戶端無法改變這個掛載點的分區格式. 而NBD提供的是一個塊設備,客戶端可以把這個塊設備格式化成各種類型的分區.更便於用戶的使用. NBD是一個內核模塊,大部分Linux發行版都已包含它.
二.NBD安裝方法
在Turbolinux的10以上的版本中,NBD已被編譯成模塊.保存在 /lib/modules/$version/kernel/driver/block/下. 你還需要在服務器端和客戶端上安裝nbd-server和nbd -client工具. 你可以從官方網站上下載源碼包,並分別在服務器端和客戶端服務器上進行安裝: http://sourceforge.net/projects/nbd 我們這裡下載nbd-2.8.8.tar.bz2 下載後,執行下列步驟進行安裝: # tar jxf nbd-2.8.8.tar.bz2 # cd nbd-2.8.8 # ./configure # make # make install
三.NBD使用方法
1.示例1: 服務器端提供單個映像文件到客戶端

你需要先建立一個磁盤映像文件,作為提供給客戶端使用的塊設備.我們製作一個300MB的文件當做塊設備. # cd /var/tmp # dd if=/dev/zero of=nbd-disk0 bs=104857600 count=3 啟動nbd-server,監聽1234端口,使用nbd-disk0映像文件. # nbd-server 1234 /var/tmp/nbd-disk0 查看nbd進程. # ps -ef | grep nbd root 11292 1 0 15:02 ? 00:00:00 nbd-server 1234 /var/tmp/nbd-disk0 nbd-server用法: nbd-server port file [size][kKmM] [-l authorize_file] [-r] [-m] [-c] [-a timeout_sec] p…