Category: Linux

  • xenserver命令行操作

    虽然大部分的操作都可以通过xencenter来操作,但是使用CLI (command line interface)命令行接口来操作会使工作精细化

    查看角色列表

    xe role-list

    导出template

    xe template-export template-uuid=be4440c9-7af6-87eb-ebe0-58dc6c11908b filename=win2003-pure.xva

    导入

    xe vm-import filename=CentOS55.xva sr-uuid=6b0c60bc-035a-2963-67e1-928a426efed8

    虚拟机加电自动开机

    首先查看虚拟机列表xe vm-list

    uuid ( RO) : 3370bad3-2efa-c783-6008-0e34ggg92a0c
    name-label ( RW): Windows Server 2003 (32-bit)
    power-state ( RO): running

    记录下来uuid,使用

    xe vm-param-set uuid=3370bad3-2efa-c783-6008-0e34ggg92a0c other-config:auto_poweron=true

     

  • ubuntu使用google calendar indicator

    ubuntu使用google calendar indicator
    首先需要添加Atareao PPA

    $ sudo add-apt-repository ppa:atareao/atareao

    更新源信息

    $ sudo apt-get update

    安装calendar-indicator

    $ sudo apt-get install calendar-indicator
  • CentOS更换或添加网卡

    有时更换网卡或换主板,原有的设备信息会存放在原来的磁盘。这时需要更新磁盘上对应的一些信息,有些情况下磁盘上的信息会自动更新,但自动更新不生效时,要手动操作。

    在CentOS6下,添加网卡之后,先去查看网卡的mac地址。

    cat /sys/class/net/eth1/address

    接下来编辑/etc/udev/rules.d/70-persistent-net.rules(本来会自动生成),加上一行eth1相关的信息。

    # This file was automatically generated by the /lib/udev/write_net_rules
    # program, run by the persistent-net-generator.rules rules file.
    #
    # You can modify it, as long as you keep each rule on a single
    # line, and change only the value of the NAME= key.
    # PCI device 0x8086:0x10c9 (igb)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:d1:ea:7a:68", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    # PCI device 0x8086:0x10c9 (igb)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:a0:d1:ea:7a:69", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

    最后到/etc/sysconfig/network-scripts/ifcfg-eth1,将hwaddr和uuid检查下,注释或删除掉都可以。

    最后reboot重启即可以用。

    udev知识:http://zh.wikipedia.org/wiki/Udev

    参考:http://superuser.com/questions/332593/how-do-you-automatically-detect-a-new-network-card-in-centos-6-redhat

  • tmpfs使用方法

    在使用df -h命令,会发现如下一条

    Filesystem                   Size  Used Avail Use% Mounted on

    tmpfs                        6.3G   13M  6.3G   1% /run/shm

    tmpfs是Linux/Unix系统上的一种基于内存的文件系统,类似于ext3, ext4。tmpfs可以使用您的内存或swap分区来存储文件。temfs主要存储暂存的文件。他有如下三个优势:
    1.动态文件系统的大小。
    2.tmpfs 的另一个主要的好处是它的速度。因为tmpfs位置为内存中,读写几乎可以是瞬间的。
    3.tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。tmpfs不具备持久性,重启后数据不保留,原因很明显,它是基于内存的。

    二./dev/shm/相关

    /dev/shm就是tmpfs的挂载点了,它的大小一般为内存的一半(CentOS)。如果要修改/dev/shm的大小为4GB,修改/etc/fstab

    tmpfs                   /dev/shm                tmpfs   defaults        0 0

    改为

    tmpfs                   /dev/shm                tmpfs   defaults, size=4G        0 0

    然后重新挂载生效

    mount -o remount /dev/shm

    三.tmpfs(/dev/shm)的应用

    既然tmpfs速度很快,那很多不怕丢的东西放内存是最好的。比如经常使用的/tmp目录,可以使用mount –bind命令将/tmp挂载成tmpfs。

    mkdir /dev/shm/tmp
    chmod 1777 /dev/shm/tmp //注意权限
    mount –bind /dev/shm/tmp /tmp

    接下来很多应用的临时文件, cache就可以放在/tmp下,如

    (1)将squid的缓存目录cache_dir放到/tmp下
    vi /etc/squid/squid.conf
    修改成
    cache_dir ufs /tmp 256 16 256
    这里的第一个256表示使用256M内存,重启一下squid服务,这样缓存目录都放在了tmpfs文件中了,速度不用说吧。

    (2)将php的session文件放在/tmp下
    对于一个访问量大的以apache php的网站,可能tmp下的临时文件都会很多,比如seesion或者一些缓存文件,那么你可以把它保存到tmpfs文件。保存seesion的方法很简单了:只要修改php.ini就行了,通过phpinfo测试文件查看你的php session存储位置,如果不在/tmp下,修改php.ini文件,修改如下:
    session.save_path = “/tmp”

    (3)将服务的socket文件放在/tmp下
    nginx.socket和mysql.sock

    至于tmpfs的其他应用,我想大家可能通过这篇文章会有所启发。再次强调下:tmpfs 数据在重新启动之后不会保留,重启tmpfs 数据会丢失,所以有必要做一些脚本做诸如加载,绑定的操作!

  • linux创建lvm

    一、概念:

    1).PV(Physical Volume):物理卷,处于LVM最底层,可以是物理硬盘或者分区。
    2).VG(Volume Group):物理卷组,建立在PV之上,可以含有一个到多个PV。
    3).LV(Logical Volume):逻辑卷,建立在PV之上,相当于原来分区的概念。不过大小可动态改变。
    4).PE(Physical Extend):物理区域,PV中可以用于分配的最小存储单位,可以在建立PV时指定,如1,2,4,8… …64M,同一VG中的所有PV的PE应该相同。
    5).LE(Logical Extend):逻辑区域,LV中可以用于分配的最小存储单元,取决于LV所在PV中PE的大小,是PE的整数倍。
    6).VGDA(Volume Group Descriptor Area):卷组描述区域,存在于每个PV中,用于描述该PV本身、PV所含VG、VG中的LV以及LV中的物理区域分配等信息,在使用pvcreate命令建立PV时建立。

    二、步骤:

    1).建立LVM类型的分区
    2).建立LVM物理卷PV
    3).建立LVM卷组VG
    4).建立LVM逻辑卷LV
    5).建立文件系统
    6).挂接文件系统
    7).使用文件系统

    三、示例

    有硬盘sdb和sdc,sdb打算存数据盘,sdc用做数据的备份,为了防止以后空间不足等情况,需要创建lv,并分别挂载到/data和/backup下。

    1).要使用新硬盘,创建物理卷,这里使用整块硬盘

    pvcreate /dev/sdb
    pvcreate /dev/sdc

    pvdisplay:显示PV属性
    pvscan:在系统所有硬盘上查找PV
    pvdata:显示某个PV的详细信息

    2).将两块硬盘分别创建并加入不同的组datavg和backupvg

    vgcreate data /dev/sdb
    vgcreate backup /dev/sdc

    vgdisplay:显示卷组的属性
    vgscan:查找系统现有VG卷组
    vgdata:显示VG卷组上的VGDA信息
    vgchange:改变VG卷组属性
    此命令有两个常用的参数:
    -a:,–available{y|n}:在操作VG时,控制一个VG的可使用性,换句话说控制一个VG能否被系统内核识别。
    -x,–allocation{y|n}:控制一个VG能否被扩充或者缩减(控制一个VG内的PV能否被分配)。
    vgextend:用于向VG中添加新的PV
    如 vgextend datavg /dev/sda6
    vgreduce:用于从VG中删除PV
    如 vgreduce datavg /dev/sda6
    vgmerge:用于合并卷组。待合并的VG必须处于非活动状态。
    例如:将demoVG2合并到demoVG1中
    vgchange -a n demoVG1
    vgchange -a n demoVG2
    vgmerge demoVG1 demoVG2

    vgsplit:用于拆分已经存在的VG,VG必须处于活动状态。

    vgchange -a y demoVG2
    vgsplit demoVG2 demoVG4 /dev/hdd2 /dev/hdd5 /dev/hdd6 /dev/hdd7

    vgremove:用于删除VG,要求待删除的VG必须处于非激活状态。
    vgchange -a n demoVG1
    vgremove demoVG1

    vgrename:用于重命名VG,不要求VG处于非激活状态。
    vgrename demoVG2 demoVG3

    3)、创建逻辑卷

    由于这里要使用整个磁盘,所以在datavg和backupvg中分别建立datalv,backuplv

    lvcreate -l 100%FREE -n datalv datavg
    lvcreate -l 100%FREE -n backuplv backupvg

    lvdisplay:显示LV的属性
    lvscan:查找系统现有LV
    lvdata:显示LV上的LVDA信息
    lvchange:改变LV属性
    lvextend:扩展LV容量。LVM的最突出特点就是随时动态的调整LV空间大小。
    如lvextend -L +10m /dev/demoVG1/demoLV11 (为demoLV11增加10MB的空间)

    创建50% vg大小的lv
    lvcreate -l 50%VG -n lv001 vg001
    创建使用余下所有vg大小的lv
    lvcreate -l 100%FREE -n lv002 vg002
    创建100M大小的lv
    lvcreate -L 100M -n lv003 vg003

    lvreduce:减小LV容量。
    例如:
    lvextend -L -10m /dev/demoVG1/demoLV11 (为demoLV11减少10MB的空间)

    vrename:LV重命名
    例如:
    lvrename /dev/demoVG1/demoLV11 /dev/demoVG1/demoLV01
    lvremove:删除LV(逻辑卷)

    例如:
    lvremove /dev/demoVG1/demoLV01 <11>resize2fs/e2fsadm/resize_reiserfs:类似于extend命令。

    4).创建文件系统

    mkfs.ext4 /dev/datavg/datalv
    mkfs.ext4 /dev/backupvg/backuplv

    5).挂载文件系统

    mount /dev/datavg/datalv /data
    mount /dev/backupvg/backuplv /backup

    保证重启后还能用,/etc/fstab中加入

    /dev/jira/jiralv /var/lib/jira ext4 defaults 0 1
    /dev/backup/backuplv /var/lib/backup ext4 defaults 0 1

    LVM相关命令

    <1>lvmdiskscan:检测硬盘和分区中的逻辑卷管理信息
    <2>lvmsadc:收集逻辑卷的读写统计信息
    <3>lvmsar:查看LVM的日志文件信息
    <4>lvmchange:复位LVM组件

  • CentOS6禁用ipv6

    1.修改/etc/sysconfig/network,添加:

    NETWORKING_IPV6=no

    2.修改/etc/hosts,将ipv6的那句本地主机名解析的也注释掉:

    #::1 localhost localhost6 localhost6.localdomain6

    3.让系统不加载ipv6相关模块,这需要修改modprobe相关设定文件,可以新建一个/etc/modprobe.d/ipv6off.conf,添加

    alias net-pf-10 off
    options ipv6 disable=1

    4.重启系统,使用如下命令确认已经生效:

    [root@test ~]# lsmod | grep -i ipv6
    [root@test ~]# ifconfig | grep -i inet6

    参考:http://www.litvip.com/499/