發表文章

目前顯示的是 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 下繼續使用將需要這個brc...

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 Virtua...

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_LIN...

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 st...

系統管理: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] ...

使用Fabric 批量執行服務器任務

我們的服務器和虛擬機的環境配置都由puppet管理,但有時候需要臨時執行某些任務和操作,比如同時更換500台服務器的密碼、同時更新或者重啟500台虛擬機、在特定幾台服務器上添加或者一個用戶、上傳一個特定文件/腳本到1000台服務器等等。這些任務用Puppet可以做,但是不是最簡潔的辦法。我們需要一種工具能完成大量服務器上的批量操作,並且要簡單可編程,Fabric就是這樣一個基於Python的服務器批量管理庫/工具,Fabric使用ssh(通過paramiko庫)在多個服務器上批量執行任務,我們只需要用Python編寫這些任務腳本並指定要執行這些任務的服務器就可以了。 Fabric 依賴paramiko,所以需要安裝這兩個: $ sudo pip install fabric $ sudo pip install paramiko 編寫一個簡單的Fabric 例子,在1台服務器上打印系統信息(uname -s): $ vi fabfile.py #!/usr/bin/python from fabric.api import run def host_os(): run('uname -s') 在vpsee.com 這台主機(host)上使用root 帳戶執行上面的任務host_os: $ fab -H root@vpsee.com host_os [root@vpsee.com] Executing task 'host_os' [root@vpsee.com] run: uname -s [root@vpsee.com] Login password for 'root': [root@vpsee.com] out: Linux Done. Disconnecting from root@vpsee.com... done. 來看一個更複雜點的例子,在多個服務器(grid00, grid02, …, grid05)上更換root 密碼(假設原密碼是root),注意加上@parallel,這樣任務是並行執行的,在大量服務器上會快很多: #!/usr/bin/python # -*- coding: utf-8 -*- from fabric.api import * import st...

Linux對稀疏(Sparse)文件的支持

稀疏(Sparse)文件可以節省大量的磁盤空間,目前很多文件系統都支持。下面介紹了Linux對稀疏(Sparse)文件的支持。 稀疏(Sparse)文件的創建 在EXT2/EXT3文件系統上可以使用dd創建稀疏文件: $ dd if=/dev/zero of=fs.img bs=1M seek=1024 count=0 0+0 records in 0+0 records out $ ls -lh fs.img -rw-rw-r-- 1 zhigang zhigang 1.0G Feb 5 19:50 fs.img $ du -sh fs.img 0 fs.img 使用C語言來創建一個稀疏文件的方法如下: $ cat sparse.c #include #include #include #include int main(int argc, char *argv[]) { int fd = open("sparse.file", O_RDWR|O_CREAT); lseek(fd, 1024, SEEK_CUR); write(fd, "\0", 1); return 0; } $ gcc -o sparse sparse.c $ ./sparse $ ls -l sparse.file -rx--x--- 1 zhigang zhigang 1025 Feb 5 23:12 sparse.file $ du sparse.file 4 sparse.file 使用python來創建一個稀疏文件的方法如下: $ cat sparse.py #!/usr/bin/env python f = open('fs.img', 'w') f.seek(1023) f.write('\n') $ python sparse.py $ ls -l fs.img -rw-rw-r-- 1 zhigang zhigang 1024 Feb 5 20:15 fs.img $ du fs.img 4 fs.img 文件稀疏化(sparsify) 下面的方法都可以將一個文件稀疏化。 cp: $ cp --sparse=always fil...

[PHP] 用 eclipse PDT 撰寫 PHP

圖片
Step 01: 安裝 PHP Development (PDT) : 習慣用 eclipse IDE 的工具來撰寫 JAVA, 若想用它來撰寫 PHP 則可以使用 PHP Development (PDT) 的工具, 這樣就可以不用切換程式撰寫工具. 若你已經裝了 eclipse 則可以使用 Safeware updates 的工具來安裝. 在 Help > Software Updates > Find and Install > Add Site : http://download.eclipse.org/tools/pdt/updates http://download.eclipse.org/tools/pdt/updates/2.0/ Step 02: 安裝 ZEND 的 Debugger: 裝完 PHP Development (PDT) 後, 還要裝 ZEND 的 Debugger 安裝的方法有二: 1. Open Eclipse and go to Help-> Software Updates-> Find and Install Select "Search for new features to install" and click "Next" Create a New Remote Site with the following details: Name: PDT URL: http://downloads.zend.com/pdt Check the PDT box and click "Next" to start the installation 2. 若安裝不下來, 則可以到 Debugger 去下載壓縮檔 download the Zend Executable Debugger Eclipse Plug-in (Note: this plug-in is included in the all-in-one package). 解開後, 放在 eclipse 目錄下的相對路徑就可以. Step 03: 設定 PDT 環境: Window -> Preferences -> PHP -> De...

brictl addbr

#hostname NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=station10.rhev.demo GATEWAY=172.17.1.254 --------------------------------------------- #hosts 127.0.0.1 vm localhost.localdomain localhost 172.17.142.23 manager.rhev.demo --------------------------------------------- #ifcfg-rhevm brctl addbr rhevm brctl addif rhevm eth2 brctl show --------------------------------------------- #ifcfg-rhevm DEVICE=rhevm BOOTPROTO=static TYPE=Bridge IPADDR=172.17.142.23 NETMASK=255.255.0.0 NM_CONTROLLED=no ONBOOT=yes --------------------------------------------- #ifcfg-eth2 DEVICE=eth2 BOOTPROTO=nono TYPE=Ethernet BRIDGE=rhevm NM_CONTROLLED=no ONBOOT=yes --------------------------------------------- /etc/init.d/network restart ping 172.17.142.23

[sqlrelay] sqlrelay.conf parameters

instances id - the id of this instance. address - 要綁在哪一個ip port - 要聽在哪一個 port socket - unix socket file(一個 instance 對應一個 socket file) dbase - 資料庫的種類(oracle7, oracle8, mysql, msql, postgresql, sqlite, freetds, sybase, odbc, db2, interbase ,mdbtools) connections - sqlr-start 的時候要起幾個 daemon maxconnections - sqlrelay daemon 的最大數量 maxqueuelength - 允許多少個 "在等待" 的 client growby - 當有新的 connection 進來的時候,要生幾個 daemon。 ttl - 呆掉的 connection 存活時間(不影響 sqlr-start 啟動時自己帶出來的 daemon) 單位:「秒」 endofsession - cliend 結束或是死掉的時候要自動執行的命令。(只能是 commit 或是 rollback) sessiontimeout - 當一個 client 打開了一個 session ,過了多久之後還沒有接起來做事的話就逾時斷線 單位:「秒」 runasuser - 用什麼 user 來跑 sqlr-listener, sqlr-connections ,sqlr-scaler runasgroup - 用什麼 group 來跑 sqlr-listener, sqlr-connections ,sqlr-scaler cursors - 一段 sql 裡面最多用幾個 cursor authtier - 每一次 client 連接時丟過來username/password ,這個參數定義了 sqlr-listener 和 sqlr-connection 誰要來接 username 和 password "listener" > 從 sqlrelay.conf 裡面的 <users> 設定來比對,不會再跟 sqlr-connection-datab...

Xen 和KVM 下如何關閉virbr0

圖片
安裝Xen或安裝KVM後都會發現網絡接口裡多 ​​了一個叫做virbr0的虛擬網絡接口: # ifconfig ... virbr0 Link encap:Ethernet HWaddr d2:91:97:b8:3d:fc inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ... 這是由於安裝和啟用了libvirt 服務後生成的,libvirt 在服務器(host)上生成一個virtual network switch (virbr0),host 上所有的虛擬機(guests)通過這個virbr0 連起來。默認情況下virbr0 使用的是NAT 模式(採用IP Masquerade),所以這種情況下guest 通過host 才能訪問外部。 大多數時候我們虛擬機使用的是bridge(網橋)直接連到局域網裡,所以這個virbr0 不是必須的(注:不要搞混淆了,bridge 和這裡的virbr0 bridge 是互不相干的)。如何關掉這個virbr0 呢?先net-destroy 然後net-undefine,最後別忘了重啟libvirtd 讓設置生效: # virsh net-list Name State Autostart ----------------------------------------- default active yes # virsh net-destroy default Network default destroyed # virsh net-undefine default Network default ...

How to uninstall openjdk 如何移除openjdk

我這邊裝的是1.6版的 以ubuntu為例 sudo apt-get remove openjdk-6-jre 以CentOs為例 yum remove java-1.6.0-openjdk

[J2EE] Install Tomcat and Ant on CentOS 5.5 安裝Tomcat, Ant在CentOS

== Download 下載檔案 == JDK 1.6 http://www.oracle.com/technetwork/java/javase/downloads/index.html Apache Ant http://ftp.twaren.net/Unix/Web/apache//ant/binaries/apache-ant-1.8.1-bin.tar.gz Apache Tomcat http://apache.stu.edu.tw//tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz == Install 安裝 == 安裝SDK cd /opt mkdir java cd java sh jdk-6u22-linux-i586.bin 解壓縮Ant, Tomcat tar -zxv -f apache-ant-1.8.1-bin.tar.gz -C /opt/ tar -zxv -f apache-tomcat-6.0.29.tar.gz -C /opt/ ln -s /opt/apache-ant-1.8.1/bin/ant /usr/bin 複製serlet-api.jar給ant cp /opt/apache-tomcat-6.0.29/lib/servlet-api.jar /opt/apache-ant-1.8.1/lib 設定環境變數 export ANT_HOME=/opt/apache-ant-1.8.1/ export JAVA_HOME=/opt/java/jdk1.6.0_22/ export PATH=${PATH}:${ANT_HOME}/bin 啟動Tomcat cd /opt/apache-tomcat-6.0.29/bin ./startup.sh 檢查Server Log less /opt/apache-tomcat-6.0.29/logs/catalina.out == Automate startup 自動啟動Tomcat == cd /etc/init.d vim tomcat #!/bin/bash # chkconfig: 234 20 80 # description: Tomcat Server star...

快速多線程ping

#!/usr/bin/python #_*_coding:utf-8_*_ # ''' 名称:快速多线程ping程序 开发:gyhong gyh9711 日期:20:51 2011-04-25 ''' import pexpect import datetime from threading import Thread host=["192.168.1.1","192.168.1.123","192.168.2.1", "192.168.1.1","192.168.1.123","192.168.2.1", "192.168.1.1","192.168.1.123","192.168.2.1", "192.168.1.1","192.168.1.123","192.168.2.1", "192.168.1.1"] report_ok=[] report_error=[] class PING(Thread): def __init__(self,ip): Thread.__init__(self) self.ip=ip def run(self): Curtime = datetime.datetime.now() #Scrtime = Curtime + datetime.timedelta(0,minute,0) #print("[%s]主机[%s]" % (Curtime,self.ip)) ping=pexpect.spawn("ping -c1 %s" % (self.ip)) check=ping.expect([pexpect.TIMEOUT,"1 packets transmitted, 1 received, 0% packet loss"],2) ...

多線程Ping網段

fping 192.168.1.1-254 import sys import subprocess from threading import Thread from Queue import Queue if sys.hexversion > sys.stderr, 'Your python version is too old (%s)' % \ (sys.version.split()[ 0 ]) print >> sys.stderr, 'You need at least Python 2.4' sys.exit( 1 ) class CreateThread(Thread): def __init__( self , func, args, name = ""): Thread.__init__( self ) self .__name = name self .__func = func self .__args = args def run( self ): apply( self .__func, self .__args) class FPing(object): def __init__( self , network, tnum): self .network = network self .tnum = tnum def ip_process( self , network): start = network.split( '-' )[ 0 ].split( '.' )[ 3 ] end = network.split( '-' )[ 1 ] ip = network.split( '-' )[ 0 ].split( '.' )[ : 3 ] ip_3 = '.' .join(ip) return (start, end, ip_3) def check_grama( self , network): check = network.find( '-' ) if check = =...

Openstack命令收集

整理一下Openstack的命令。下面的命令,我都是全部在机器验证过,主要是参考 redhat文档 查看rabbitmq 队列 rabbitmqctl list_queues 查看keystone的用户 keystone user-list 查看keystone endpoint keystone endpoint-list 查看keystone的role keystone role-list 查看keystone 服务 keystone service-list 查看keystone租户 keystone tenant-list 查看keystone进程 ps -ef | grep -i keystone-all 查看日志是否有错误 grep ERROR /var/log/keystone/keystone.log 上传image glance add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf \ disk_format=qcow2 oskey.priv chmod 600 oskey.priv 申请floating IP nova floating-ip-create 安全组相关命令 nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 nova secgroup-list nova secgroup-list-rules default 查看虚拟机配置种类 nova flavor-list 创建虚拟机(一个test的虚拟机) nova boot --flavor 2 --key_name oskey --image ea3ffba1-065e-483f-bfe2-c84184ee76be test1 完整创建一个虚拟机的流程 nova keypair-add oskey > oskey.priv chmod 600 oskey.priv nova flavor-list nova image-list nova boot --flavor ...

安裝Centreon(一)

圖片
#wget http://download.centreon.com/centreon/centreon-2.1.8.tar.gz # tar -xzf centreon-2.1.8.tar.gz # cd centreon-2.1.8 安裝的時候需要設定ngios 的可執行文件路徑環境: # export PATH="$PATH:/usr/local/nagios/bin/" # ./ install.sh -i 上面兩個文件的位置,可以打開另一個終端界面,用rpm –ql 命令查看: # rpm -ql perl-rrdtool /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/RRDs.pm # rpm -ql php-pear /usr/share/pear/PEAR.php 接下來是最為關鍵的部分,很多安裝沒有成功,都是因為必須pear 模塊沒有安裝完全: 提示安裝或更新PEAR 模塊。這一步選擇“ y ”後,它會自動安裝或更新,有的顯示“ OK ”就表示安裝成功,對於“ NOK ”表示沒有成功,它會一直循環下去,直到“ OK ”,此時自動在線安裝或更新有可能進行不下去,會一直循環顯示,這時,我們選擇手動安裝,操作步驟如下: 1 )記下有“ NOK ”模塊 HTML_QuickForm_advmultiselect1.1.0NOK HTML_Table1.6.1NOK SOAP0.10.1NOK HTML_QuickForm_advmultiselect1.1.0NOK HTML_Table1.6.1NOK 2 )打開PEAR 官方網站的模塊下載網址: http://pear.php.net/packages.php 查找需要的PEAR 模塊軟件包: HTML_QuickForm_advmultiselect1.1 HTML_Table1.6. SOAP0.10.1 HTML_QuickForm_advmultiselect1.1.0 HTML_Table1.6.1 以HTML_QuickForm_advmultiselect 為例: 安裝成功與下載的軟件版本有很大的關係,...

Centos yum安裝rrdtool筆記

源码安装rrdtool没成功,依赖太多了,下面进行yum 安装rrdtool,首先加入dag的yum. [root@localhost]# cd /etc/yum.repos.d/ [root@localhost]# vim dag.repo [dag] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1 安装相关依赖 [root@localhost]#yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel [root@localhost]# yum install -y rrdtool perl-rrdtool rrdtool-devel

安装NDOutils

官方的一些簡介: NDOUtils allows you to export current and historical data from one or more Nagios instances to a MySQL database. Several community addons use this as one of their data sources. NDOUtils consists of a standalone daemon, a Nagios event broker, and several helper utilities Centreon gets all its status and performace data directly from the database. To get the data into the DB, ndoutils are used as an additional layer between nagios and centreon . NDOutils consist of 2 parts: ndomod and ndo2db - the first one is the sender , the second the receiver . As you can read in DistributedArchitecture and see in the image, each nagios instance sends data through the ndomod module to the ndo2db daemon, which writes the data into the database. To enable such a setup some manual configuration steps are needed . NDOutils 軟件主要是用於將數據存數據庫,然後又可讀取出來,它在nagios 與centerton 之間接收和發送數據。 NODutils 有三個版本,一個是官方的,一個是修改的SVN 版本,另外一個是有補丁用於官方的版本。 the patch for official version You will find the latest versi...

技術選型的討論

搞技術的,經常都討論這個問題,開源里就更是,選擇太多,那個是最好的。所有人都希望自己的選擇是最優的,而不會出錯的。 但是現實的條件,其實很難做出最優決策。舉一個簡單的例子:Xen和KVM,你選擇誰,不同的時候,你的選擇會不一樣。 下面這段話,我相信真的是過來人,以其在辦公室裡開會討論那個更好,不然先用簡單的辦法去嘗試一下,而不是指望在辦公室裡可以討論出一個最佳的方案。 選擇簡單但是不完美的技術解決問題,先做!然後再不斷優化。如果不去嘗試,我們永遠也不知道下一步要做什麼,總是停留在對技術方案本身優劣的討論上,是沒有意義的。

crontab使用

這個東西以前一直都知道,不過真沒實際使用.現在希望他每天幫我去同步源.所以就深入學習一下這個 yum install crontabs 注意啊,是crontabs 不過現在的系統,默認是已經安裝好,默認是不啟動,你只需要啟動該服務就可以. /etc/init.d/crond start chkconfig crond on 這個時候,你就可以使用–l 參數來查看當前用戶的計劃任務。 # crontab -l 30 21 * * * /root/ubuntu_mirror.sh 添加計劃任務, crontab -e 就可以進入vi編輯器.比較簡單. 下面這些例子,倒是很全面,直接參考就基本可以滿足我的需求. http://www.cppblog.com/API/archive/2012/03/28/169237.html 參數: -e編輯該用戶的計時器設置。 -l列出該用戶的計時器設置。 -r刪除該用戶的計時器設置。 -u 指定要設定計時器的用戶名稱。 2,crontab 格式 基本格式: * * * * * command 分時日月週命令 第1列表示分鐘1~59每分鐘用*或者*/1表示 第2列表示小時1~23(0表示0點) 第3列表示日期1~31 第4列表示月份1~12 第5列標識號星期0~6(0表示星期天) 第6列要運行的命令crontab特殊的符號說明: “*”代表所有的取值範圍內的數字。特別要注意哦!“/”代表每的意思,如”*/5″表示每5個單位“-”代表從某個數字到某個數字“,”分散的數字 crontab文件的一些例子: 30 21 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每晚的21:30重啟apache。 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每月1、 10、22日的4 : 45重啟apache。 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart 上面的例子表示每週六、週日的1 : 10重啟apache。 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart 上面的例...

Nagios的安裝與配置

圖片
本文轉自linux_study的博客 http://chenxizhuimeng.blog.51cto.com/2516314/510234 本文僅供自己參考,如果您有疑問請參考原博文,並請教原作者 一.Nagios簡介 Nagios是一款遵循GPLv2的開源網絡監控軟件,可用來監控指定的多種系統的主機、服務,並可在它們的工作狀態發生變化時通知管理員。 1)監控網絡服務(HTTP、POP3、SMTP、PING、MySQL等) 2)監控主機資源(磁盤空間利用率、內存利用率、CPU負載等) 3)簡潔的插件設計接口,使得用戶可以輕鬆開發所需的檢測腳本 4)並行服務模式 5)輕鬆描述網絡結構,並且能夠區辨“宕機”和“主機不可達” 6)通過郵件或用戶自定義的方式將主機或服務的工作狀態變化情況通知給管理員6)當服務或主機問題產生與解決時將告警發送給聯繫人(通過EMail、短信、用戶定義方式) ?可以通過飛信,等方式實現時,既可傳遞給管理員,可高效的保證服務器的維護。 7)自動日誌滾動 8)支持以冗餘方式進行主機監控 9)可以通過web方式直觀的查看當前網絡狀態、通知和問題歷史、日誌文件等等,此組件為可選 二.nagios組件 Nagios通常由一個主程序(Nagios)、一個插件程序(Nagios-plugins)和四個 可選的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)組成。Nagios的監控工作 都是通過插件實現的,因此,Nagios和Nagios-plugins是服務器端工作所必須的組件。 而四個ADDON中?(1)NRPE:用來在監控的遠程Linux/Unix主機上執行腳本插件 以實現對這些主機資源的監控?(2)NSCA:用來讓被監控的遠程Linux/Unix主機主動 將監控信息發送給Nagios服務器(這在冗餘監控模式中特別要用到) (3)NSClient++:用來監控Windows主機時安裝在Windows主機上的組件? (4)NDOUtils:則用來將Nagios的配置信息和各event產生的數據存入數據庫, 以實現這些數據的快速檢索和處理?這四個ADDON(附件)中, NRPE和NSClient++工作於客戶端,NDOUtils工作於服務器端, 而NSCA則需要同時安裝在服務器端和客戶端 三...

構建異步Net-SNMP 引擎

為Net-SNMP 異步生成Python 綁定。默認情況下,Net-SNMP 將阻塞每一個Python 調用。使用多進程庫可以非常簡單地將Net-SNMP 庫轉換為完全異步的操作。 在開始之前,需要檢查是否安裝了一些必備的內容,以便使用Python 2.6 多進程庫和Net-SNMP 綁定: 1. 下載Python 2.6並針對所使用的操作系統進行編譯:Python 2.6下載 2. 調整shell路徑,這樣在輸入python時就會啟動Python 2.6。例如,如果將Python編譯到/usr/local/bin/, 您就需要預先處理$PATH變量,從而確保它位於一個較舊的Python版本之前。 3. 下載並安裝設置工具:設置工具 4. 下載Net-SNMP,除了使用其他操作系統所需的標記(參見相應的README文件)外,另外使用一個“--with-python-modules”標記進行配置。 ./configure --with-python-modules 按如下所示編譯Net-SNMP: -------------------------------------------------- ------- Net-SNMP configuration summary: -------------------------------------------------- ------- SNMP Versions Supported: 1 2c 3 Net-SNMP Version: 5.4.2.1 Building for: darwin9 Network transport support: Callback Unix TCP UDP SNMPv3 Security Modules: usm Agent MIB code: default_modules => snmpv3mibs mibII ucd_snmp notification notification-log-mib target agent_mibs agentx disman/event disman/schedule utilities Embedded Perl support: enabled SN...

Python日誌(logging)模塊使用方法簡介

介紹 A logger is configured to have a log level . This log level describes the severity of the messages that the logger will handle. Python defines the following log levels: § DEBUG : Low level system information for debugging purposes § INFO : General system information § WARNING : Information describing a minor problem that has occurred. § ERROR : Information describing a major problem that has occurred. § CRITICAL : Information describing a critical problem that has occurred. Each message that is written to the logger is a Log Record . Each log record also has a log level indicating the severity of that specific message. A log record can also contain useful metadata that describes the event that is being logged. This can include details such as a stack trace or an error code. When a message is given to the logger, the log level of the message is ...

利用 Xen 設計虛擬機器

reference: 鳥哥 http://linux.vbird.org/linux_enterprise/xen.php 感謝鳥哥詳細說明: 所需要的 Xen 套件與核心: 需要安裝的套件主要有: kernel-xen:修改的 Linux 核心,使可以跑 Xen 的環境; xen:主要的 xen 套件,包括設定檔、啟動腳本、所需的基本函式庫等; xen-libs:Xen 所需要的函式庫等; python-virtinst:提供終端機安裝的軟體; virt-manager:為一個圖形使用者介面軟體,可在圖形介面管理 xen 喔! 在 CentOS 5.x 的環境下,妳可以使用 yum 直接來安裝這幾個套件。安裝完畢後請務必使用新的核心開機! 然後重新啟動這部 Linux 主機喔!啟動完成後,應該再次的確認一下是否為 xen 的核心才行! [root@linux ~]# uname -r [root@linux ~]# chkconfig --list | grep xen xend 0:off 1:off 2:on 3:on 4:on 5:on 6:off xendomains 0:off 1:off 2:off 3:on 4:on 5:on 6:off [root@linux ~]# pstree -p | grep xen | |-xenbus(10) | `-xenwatch(9) |-xenconsoled(2348)---{xenconsoled}(2349) |-xenstored(2340) xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 462 1 r----- 49.2 xen 的套件結構: 我們前面談到過, Xen 在 domain-0 是由一個 xend 的服務所管理的,他可以用來啟動、關閉與連結到其他的 domain-U 當中。此外, Xen 亦提供許多的指令來讓系統管理員管理他們的 domain-U 啊!這些...

ubuntu 12.04 puppet部署Openstack

reference: http://www.chenshake.com/

Openstack 资料

http://www.chenshake.com/

一位退休老總的感言

這篇文章轉載很多,不過我是不相信是HP中國區的老闆寫的,這種位置的人,是不會寫這麼敏感的東西。另外網上也有討論,基本否定。不過文章肯定不是一般人能寫出來,肯定是在外企高管呆了很久,並且是名校畢業的。有時候大家需要有基本的判斷能力。 我最欣賞的一句是:李嘉誠是否比你快樂。我也經常這樣和家人說。等你真的有錢,你真的會發現,和快樂不成比例,這個是必然的。 我日後blog會盡量減少轉​​載的內容,除非真的是精華的精華,對我產生很大影響的文章。 一、關於工作與生活 我有個有趣的觀察,外企公司多的是25-35歲的白領,40歲以上的員工很少,二三十歲的外企員工是意氣風發的,但外企公司40歲附近的經理人是很尷尬的。我見過的40歲附近的外企經理人大多在一直跳槽,最後大多跳到民企,比方說,唐駿。外企員工的成功很大程度上是公司的成功,並非個人的成功,西門子的確比國美大,但並不代表西門子中國經理比國美的老闆強,甚至可以說差得很遠。而進外企的人往往並不能很早理解這一點,把自己的成功90%歸功於自己的能力,實際上,外企公司隨便換個中國區總經理並不會給業績帶來什麼了不起的影響。好了問題來了,當這些經理人40多歲了,他們的薪資要求變得很高,而他們的才能其實又不是那麼出眾,作為外企公司的老闆,你會怎麼選擇?有的是只要不高薪水的,要出位的精明強幹精力衝沛的年輕人,有的是,為什麼還要用你? 從上面這個例子,其實可以看到我們的工作軌跡,二三十歲的時候,生活的壓力還比較小,身體還比較好,上面的父母身體還好,下面又沒有孩子,不用還房貸,也沒有孩子要上大學,當個外企小白領還是很光鮮的,掙得不多也夠花了。但是人終歸要結婚生子,終歸會老,到了40歲,父母老了,要看病要吃藥,要有人看護,自己要還房貸,要過基本體面的生活,要養小孩……那個時候需要掙多少錢才夠花才重要。所以,看待工作,眼光要放遠一點,一時的誰高誰低並不能說明什麼。 從這個角度上來說,我不太贊成過於關注第一份工作的薪水,更沒有必要攀比第一份工作的薪水,這在剛剛出校園的學生中間是很常見的。正常人大概要工作35年,這好比是一場馬拉鬆比賽,和真正的馬拉鬆比賽不同的是,這次比賽沒有職業選手,每個人都只有一次機會。要知道,有很多人甚至堅持不到終點,大多數人最後是走到終點的,只有少數人是跑過終點的,因此在剛開始的時候,去搶領先的位置並沒有太大的意義...