2012年11月19日 星期一

RHEL5 & 6 NIC Bonding

RHEL5跟RHEL6的bonding設定略有不同,寫一下以免老是忘記打錯

1. RHEL5
假設是要將eth0與eth1做mode1的bonding
  • 編輯/etc/modprobe.conf檔案,加入:
# vim /etc/modprobe.conf
   
alias bond0 bonding


  • 修改/etc/sysconfig/network-script/底下的ifcfg-eth0與ifcfg-eth1,並新增ifcfg-bond0
# cd /etc/sysconfig/network-script
# vim ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"


# vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no


  • 重啟網路
# /etc/init.d/network restart


2.RHEL6:
情境跟RHEL5一樣,eth0+eth1做成bond0
  • 編輯/etc/modprobe.d/底下的設定檔(6版改為folder,裡面只要是.conf結尾的檔案都會生效)
# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
**如果有兩個以上的bonding介面,就再加alias bond1 bonding ...以此類推


  • 修改/etc/sysconfig/network-script/裡面關於eth0與eth1的設定,新增bond0
# vim /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim /etc/sysconfig/network-script/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no


# vim /etc/sysconfig/network-script/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS=miimon=100 mode=1


  • 重啟網路
# /etc/init.d/network restart



3.Bond Mode:

0balance-rr‧負載平衡模式, 需有 switch 設定 (trunk) 支援才能發揮實質效果
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
1active-backup‧同一時間只有單一 Slave 網卡運作
‧Active Slave 網卡失效時自動啟用次一順位 Slave 網卡
‧不需 switch 支援
2balance-xorTransmit based on [(source MAC address XOR'd with destination MAC address) modulo slave count]. This selects the same slave for each destination MAC address. This mode provides load balancing and fault tolerance.
3broadcast‧所有 Slave 網卡一齊收送網路封包
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
4802.3adIEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification.

*Pre-requisites:

1. Ethtool support in the base drivers for retrieving the speed and duplex of each slave.

2. A switch that supports IEEE 802.3ad Dynamic link aggregation. Most switches will require some type of configuration to enable 802.3ad mode
此模式可以參考 http://phorum.study-area.org/index.php?topic=43051.0
5balance-tlb‧傳出自動負載平衡
‧傳入由 Current Active Slave 負責
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
‧不需 switch 支援及設定
6balance-alb‧傳出及傳入皆自動負載平衡
‧具容錯功能, 其中一張 Slave 網卡失效仍可持續運作
‧Slave 網卡 driver 需支援 setting hardware address 功能
‧不需 switch 支援及設定

2012年10月13日 星期六

NFS Export different LUN with parent directory

今天客戶遇到NFS server的奇怪問題,註記一下以免忘記
情境:
有兩個空間分別mount在/new與/new/2012並將/new nfs分享出去,client端使用指令將server的/new mount起來後,可以看到/new裡面有一個2012資料夾,但資料寫入卻是寫在/new那個空間

測試:
NFS server
1. NFS server 新增兩個硬碟空間,分別為/dev/vdb1,/dev/vdc1

# fdisk -l
….......
Disk /dev/vdb: 2147 MB, 2147483648 bytes
16 heads, 63 sectors/track, 4161 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8e79b1b7

  Device Boot      Start         End      Blocks   Id  System
/dev/vdb1               1        4161     2097112+  83  Linux

Disk /dev/vdc: 2147 MB, 2147483648 bytes
16 heads, 63 sectors/track, 4161 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x7c784fd8

  Device Boot      Start         End      Blocks   Id  System
/dev/vdc1               1        4161     2097112+  83  Linux


2. Server 建立Dir:/new 並將/dev/vdb1 mount 在/new
3. 在/new 目錄下建立2012目錄,修改權限後,mount /dev/vdc1 在/new/2012

   [root@node2 ~]# chmod -R 777 /new
[root@node2 ~]# ll /new
total 20
drwxrwxrwx. 3 777 root  4096 Sep 19 15:28 2012
drwxrwxrwx. 2 777 root 16384 Sep 19 14:29 lost+found
[root@node2 ~]# ll /new/2012/
total 16
drwxrwxrwx. 2 777 root 16384 Sep 19 14:29 lost+found
[root@node2 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root         5.5G  2.9G  2.4G  56% /
/dev/vdb1             2.0G   36M  1.9G   2% /new
/dev/vdc1             2.0G   35M  1.9G   2% /new/2012





4. # vi /etc/exports   加入
  /new     *(sync,rw)


5. # /etc/init.d/nfs restart      重啟nfs service
[root@node2 ~]# /etc/init.d/nfs restart
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]



NFS client
1. # showmount -e “NFSserverIP”
2. # mount IP:/new /mnt
[root@solutions ~]# mount 172.16.1.136:/new /mnt
[root@solutions ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_soldtions-LogVol00                   97G   14G   78G  16% /
…...
172.16.1.136:/new     2.0G   35M  1.9G   2% /mnt


3. # ls -al /mnt
[root@solutions ~]# ls /mnt
2012  lost+found
  [root@solutions ~]#


4. # touch /mnt/2012/test    
5. # ls /mnt/2012   
[root@solutions ~]# touch /mnt/2012/test
[root@solutions ~]# ls /mnt/2012/test
/mnt/2012/test
[root@solutions ~]#


6. # ls -al /new/2012    回到NFS server檢查,發現檔案並沒產生
[root@node2 ~]# ls /new/2012/
lost+found
[root@node2 ~]#


7. # /etc/init.d/nfs stop
   # umount /new/2012          停掉NFS並umount /dev/vdc1
   # ls -al /new/2012             發現剛產生的檔案在這邊(dev/vdb1)
[root@node2 ~]# ls /new/2012/
lost+found
[root@node2 ~]# /etc/init.d/nfs stop
Shutting down NFS mountd:                                  [  OK                                     ]
Shutting down NFS daemon:                                  [  OK                                     ]
Shutting down NFS quotas:                                  [  OK                                     ]
Shutting down NFS services:                                [  OK                                     ]
[root@node2 ~]# umount /new/2012/

[root@node2 ~]# ls /new/2012/
test
[root@node2 ~]#


解決方法:(在/etc/exports裡面加上nohide & crossmnt兩個參數)
1. # vim /etc/exports
  /new     *(sync,rw,nohide,crossmnt)

2. # /etc/init.d/nfs start        重啟nfs 服務
3.到Client 將/new mount 起來後
  # echo `date` >  /mnt/2012/test2
  # ls -al /mnt/2012             應該會看到剛產生的檔案
[root@solutions ~]# mount 172.16.1.136:/new /mnt
[root@solutions ~]# echo `date` > /mnt/2012/test2
[root@solutions ~]# ls /mnt/2012/
lost+found  test2
[root@solutions ~]# cat /mnt/2012/test2
Wed Sep 19 15:57:00 CST 2012
[root@solutions ~]#


4. 到NFS server的 /new/2012/ 查看有無看到一樣的檔案
  # cat /new/2012/test2
  # df -h    確認mount point是想要的
[root@node2 ~]# cat /new/2012/
lost+found/ test2
[root@node2 ~]# cat /new/2012/test2
Wed Sep 19 15:57:00 CST 2012
[root@node2 ~]#


5.完工!!

2012年7月12日 星期四

Linux 透過proxy連外的設定方式

由於小弟的公司一定要透過proxy才能上網,所以一直在找系統proxy設定的方法

一 RHEL(Fedora,centos應該也差不多)
1.CMD方式
暫時生效
# export http_proxy=http://username:password@"Proxy IP":port
# export ftp_proxy=http://username:passord@"Proxy IP":port
//其中如果proxy server不須要帳密,就只要打http://"Proxy IP":port即可

永久生效
# vim ~/.bashrc   //將上面兩行export加入即可
# source ~/.bashrc

YUM更新
# vim /etc/yum.conf   //加入
proxy=http://username:passord@"Proxy IP":port

2.在Desktop上設定
選擇『系統』>『偏好設定』>『代理伺服器』
輸入IP跟port 如果需要帳密,點選詳細設定後輸入

2012年5月15日 星期二

Ubuntu 產生軟碟機映像檔給虛擬機使用,

最近Max因為工作用的軟體只能在XP上使用,且只能用軟碟機提供程式需要的Config
為了再虛擬機上產生軟碟機,試了很多方式,還是dd最簡單:

# cd /虛擬機所在目錄
# dd if=/dev/zero of=floppy.img bs=512 count=2880

再來到虛擬機設定中,產生新的軟碟控制器(如果已經有了就不需要新增),
然後將新增的floppy掛載上去













再來將XP重開機,就可以看到嚕