一些常用的xenserver 的命令集合

这是在搜索xenserver 的 SR 的问题的时候无意中找到的,很有帮助,对于我这种懒人来说

xe help –all|more
Show a list of XenServer CLI commands

xsconsole
Runs up the XenServer text based console

xe-toolstack-restart
Restarts the XenServer management tools

ls –l
List files in a Directory

less /var/log/dmesg
Display Boot Messages from Linux

xe host-dmesg
Xen Hypervisor Boot messages

tail –f /var/log/xensource.log
Look at xapi messages as they happen

tail –f /var/log/xensource.log | grep xxx
Look at xapi messages only for vm uuid xxx

tail –f [log name] > [target filename]
Send output to a file for analysis later

cat /etc/xensource-inventory
Display XenSource Inventory info

xen-bugtool –yes
Build a status report when xapi is down

xe-backup-metadata -d –u [uuid of SR]
Back up Pool metadata for all VMs

tcpdump –i [inf] –vvv –w [filename]
Get a Packet trace from [inf]. E.g. Inf=eth0, xenbr0, vif2.0 etc.

top
List the top processes running in Dom0

xentop
List top Xen processes

mpstat 5
Processor stats in Dom0

vmstat 2
Virtual memory in Dom0

netstat –s
Networking statistics

iostat -d 2 6
Storage traffic stats

list_domains
Lists VMs that are running

fdisk –l
List the disk partitions

hdparm –t /dev/sda3
Device read times for sda3 (normally local SR)

pvs
Show local and remote LVHD SRs

ll /dev/disks/by-id
Look at disk partitions

lvs
List logical volumes (virtual disks)

vgs
List LVM volume groups

cd /var/run/sr-mount
Look at NFS SRs

df -h
Shows how much disk space you have left

dd if=/dev/sdb of=/dev/null iflag=direct bs=1M count=512
Read data performance from sdb.

dd if=/dev/zero of=/dev/sdb oflag=direct bs=1M count=4096
Write performance on sdb. * Don’t use on disks with VMs on them!

ifconfig
Show info on NICs, virtual switches and vNICs

brctl show
Show info on virtual switches

ethtool eth0
Info for NIC eth0

mii-tool
Info on NIC bonding

iscsiadm -m discovery –type sendtargets –port 192.168.250.14
Discover iSCSI targets available to this server

iscsiadm –m session
Open iscsi sessions

history
Lists the history of commands you’ve used

!136
Executes command #136 in the history

history -w history-list.txt
Writes the history info to a text file

 

一晃一个月已过

 

一晃,回国已经一个多月,现在已经充分的融到了天津这座全国最大的农村之中

现在最喜欢的事,就是早上在海河边上慢跑,右看河边的老大爷们钓鱼,左看马路上匆匆忙忙上班的人们,怡然自得

心也慢慢的静下来,享受生活

 

Xenserver 的初始化

现在形成的习惯是,每个新的dedicated server 都会去安装xenserver,这样能够尽量充分利用这个服务器. 大部分时候都习惯自己去安装xenserver,顺便让xenserver自己初始化local storage repo. 可是如果xenserver 是由IDC 安装的话,那么80%的可能性是只会给你安装xenserver的程序,xenserver程序所在的硬盘的剩余空间,不会给你初始化成local storage repo,那么这个时候就需要我们自己来首先创建/dev/sda3, 然后把sda3初始化为local storage repo.

首先我们需要看下xenserver的基本架构. 假设我们xenserver安装在你sda上, 那么在sda上默认会有两个区, 分别是/dev/sda1, /dev/sda2. sda1变式xenserver程序所在的分区, sda2  和 sda1大小相等,都是5GB大小,是sda1 的备份镜像区.  假设这个sda 的大小为500GB, 那么刨除sda1和 sda2 以后,还有490GB 的空间,我们需要把这490GB 的空间创建为sda3,然后在sda3上创建local SR.

xenserver 从6.0 开始,默认使用GPT分区,也就是说单个分区可以达到2TB 以上. fdisk 命令是专门用于MBR分区的,对GPT分区不适用. 也就是说我们需要使用GPT分区的程序. 通过搜索,你会发现,大部分教程都是教你使用parted, 但是parted 程序较为复杂,而且xenserver 这个linux 发行版上默认没有安装parted. 那是因为xenserver 使用的是另外一个GPT分区的工具, gdisk.

 

gdisk 和 fdisk 的使用方式,命令参数一模一样,不同的是一个用于GPT分区,一个用于MBR 分区.

话不多说,通过gdisk 很快就创建/dev/sda3, 这里要注意的是, sda3需要创建成的文件格式是linux

LVM. 这里还需要说一句的是,既然fdisk 无用识别GPT,也因为无法使用fdisk 来查看磁盘分区。解决的办法有两个,一个是cat /proc/partitions;  另外一个就是sgdisk命令,类似于fdisk, 来查看分区情况。

创建好/dev/sda3以后,剩下的就简单多了,可以直接参见我写的这篇文章

http://www.webmasterschina.com/2014/10/19/116/

 

给squid 添加 monit 自动监控功能

 

advertcn 在国内的电信节点本来是使用的nginx 的,可惜貌似实在有点问题,时断时续,可能是配置有点问题,无奈换回了squid

squid呢,0.1% 的可能性会因为这样或者那样的原因死机,于是就想加上一个monit 做自动监控

首先安装squid,十分的简单,直接yum install squid

其次,编辑/etc/monit.conf, 加入下面的命令

check process squid with pidfile /var/run/squid.pid
start program = “/etc/init.d/squid start”
stop program = “/etc/init.d/squid stop”

 

保存,然后monit -t 检查语法错误,如果没有问题了,就直接service monit start

debian 上安装monit 来监控 Mr9SM

因为目前V6 稍微有点小bug,会造成程序无规律的宕机,因此考虑安装monit 来监控mr9sm 主程序

安装

apt-get install monit

安装完毕,配置文件是

/etc/monit/monitrc

你可以在monitrc 上修改你的监测频率以及web 端口

在最下面添加(如果你用的是debian):

check process mr9sm with pidfile /var/run/mr9sm.pid
start program = “/usr/sbin/service mr9sm start”
stop program = “/usr/sbin/service mr9sm stop”

保存后运行monit -t 检查语法,如果没有问题,直接monit restart既可以

online.net 的服务器安装xenserver,并且给VM 配置多IP

online.net 的服务器比较便宜,我也入手了一个做开发

但是他们使用的是failover IP,比较烦人。对于failover 的IP的配置,应该是这样

IPADDR: 你的failover IP

NETMASK: 255.255.255.255

GATEWAY: 把你的主IP 的最后一位改为1 即可

这是在centos 上的设置,用netinstall 可能会有问题。 这个时候再netinstall 的时候, 选用255.255.0.0 位netmask,主IP的最后一位改成1的IP为gateway 的IP

这样就让failover IP 和 gateway IP 在同一个IP段,这样就可以进行安装了。

等安装完毕以后,再改回原来上面的样子,然后在按照下面所说来添加IP route

 

 

但是安装完重启就不行了,这是因为ipaddr 和你的gateway 的IP 不在一个subnet上,你需要手工添加一条静态路由

假如说你用的是eth0,那么你就需要给eth0 添加一条静态路由:

File : /etc/sysconfig/network-scripts/route-eth0

GATEWAY_VM dev eth0
default via GATEWAY_VM dev eth0

然后重启

service network restart,这样你的IP 就可以被外界所访问了.

这是在你的 VM 上只有一个IP的,如果你有多个IP的时候,这个和普通的centos 一样,添加多个IP,但是当你在重启network 的时候,会发现centos 总是说:

Bringing up interface eth0: SIOCADDRT: No such process

这是因为系统在强制给你的 ip aliase 添加默认路由,其实这是不需要的了,因为已经添加在你的VM 的主 IP 上

这个时候你可以在ifcfg-eth0 上禁止向ip aliase 添加路由:

NO_ALIASROUTING=yes

 

如果你安装的是debian,那么就更简单了,编辑/etc/network/interfaces

修改如下即可:

auto eth0
iface eth0 inet static
address IP-Failover
netmask 255.255.255.255
broadcast IP-Failover
gateway MAIN-SERVER-IP.1
pointopoint MAIN-SERVER-IP.1

 

然后退出,运行service networking restart 即可

 

Linux GRE 中使用source based routing

现在很多米国的机房都在使用cisco 的路由,禁止流量从不属于自己的ip space 中流出自己的network,这就给GRE tunnel 造成了很大的不变。

但是也不是没有解决办法,这就是source based routing。

分为三步:

1) 加个路由表

2) 让tunnel 过来的 IP 使用新家的路由表

3) 给新加的路由表添加一个默认的gateway就可以了,这样通过tunnel 过来的IP 就可以按照原路返回

code:

1) echo ‘100 GRE’ >> /etc/iproute2/rt_tables

2) ip rule add from 198.255.255.0/24 table GRE

这里认为你把整个c段198.255.255.0/24 tunnel 到你现在的这台机器上

3) ip route add default via 192.168.1.1 table GRE

让这个新的IP 段使用192.168.1.1的 gateway,按照原来返回

megacli 命令的用法

最近买的一些server,自身的主板上都带有 LSI RAID card,我们可以使用megacli command 来检查一些参数的状态

首先我们必须安装LSI Logic 提供的megacli 工具

可以直接使用已编译好的源: http://hwraid.le-vert.net/

crontab:

可以直接使用这个crontab file 来自动检测LSI RAID 的状态: http://it.bmc.uu.se/andlov/docs/linux/raid/files/megacli.cron

这篇post 的主要目的是megacli 命令:

显示raid adapter 的所有信息:

megacli -AdpAllinfo -aALL

显示物理硬盘的信息:

megacli -PDList -aALL

显示逻辑硬盘的信息:

megacli -LDGetProp -LALL -aALL

检查 raid rebuild 的状态:

megacli -AdpAllinfo -aALL | grep -i rebuild

更多的信息参见这里: http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS

 

Xenserver 上安装 centos 和 debian

以前很傻呼呼的,都是直接用的minimal cd 安装的,现在知道了原来还可以用URL 的方式安装

对于centos来说,可以使用这些URL:

http://mirrors.sonic.net/centos/6/os/x86_64/

http://less.cogeco.net/centos/6/os/x86_64/

http://centos.mirror.constant.com/6/os/x86_64/

http://centos.mirror.root.lu/centos/6/os/x86_64/

http://mirror.nl.leaseweb.net/centos/6/os/x86_64/

http://repos.lax.quadranet.com/centos/6/os/x86_64/

亚洲的可选:

http://centos.mirror.cdnetworks.com/6/os/x86_64/

安装完以后安装 xentools:

mount /dev/cdrom /media
cd /media/Linux/

./install.sh

 

在 xenserver上安装debian,可以使用一下URL:

ftp://ftp.us.debian.org/debian

安装xen tools:

mount /dev/cdrom /media
cd /media/Linux/

./install.sh