Tagged: Linux

ethX 辨識

在linux底下的 ethX 常常與主機板編號的順序不太一樣.

所以得用下列指令辨識哪個孔是哪個 ethX

# ethtool -p ethX
# ethtool --identify ethX

xfs error : “mount: Structure needs cleaning”

當我在掛載 xfs partition 時出現了”Structure needs cleaning”錯誤

# mount /dev/sdb1 /disk2
mount: Structure needs cleaning

我用了下列的指令解決了. 雖然我不太清楚什麼東西導致它有問題 :
# xfs_repair -n /dev/sdb1

上面指令還不能完全解決

# xfs_check /dev/sdb1
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_check. If you are unable to mount the filesystem, then use
the xfs_repair -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption — please attempt a mount
of the filesystem before doing this.

用 xfs_check 指令. 它建議我用 “xfs_repair -L ”
# xfs_repair -L /dev/sdb1

這樣弄玩之後. 在用 xfs_check 檢查一次
# xfs_check /dev/sdb1

就可以掛載了
# mount /dev/sdb1 /disk2

Linux 開關 swap partitions

# swapon –a

打開所有 swap partitions

# swapoff –a

關閉所有 swap partitions

# blkid
/dev/sda1: LABEL="/" UUID="dec5d8be-d75d-4440-a592-d12e837e90e6" TYPE="ext3"
/dev/sda2: LABEL="SWAP-hdc2" TYPE="swap"
/dev/sdb1: UUID="a84e9fa7-255e-435e-8d9f-e5b613895771" TYPE="xfs"

列出 UUID

# swapon –U 
# swapon –L 

指定某 uuid 或某 label 開啟特定的 swap

Linux 硬碟簡單的測速

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   29992 MB in  1.99 seconds = 15061.91 MB/sec
 Timing buffered disk reads:  438 MB in  3.01 seconds = 145.69 MB/sec

這個是 SAS 15K 的速度

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   20900 MB in  2.00 seconds = 10464.95 MB/sec
 Timing buffered disk reads:  896 MB in  3.00 seconds = 298.28 MB/sec

這個是 SAS 15K 兩顆做 RAID 0 的速度

# hdparm -tT /dev/md127

/dev/md127:
 Timing cached reads:   22506 MB in  2.00 seconds = 11269.49 MB/sec
 Timing buffered disk reads:  718 MB in  3.00 seconds = 239.31 MB/sec

這是 SATA 7.2K 兩顆做 RAID 0 的速度

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   9284 MB in  2.00 seconds = 4647.05 MB/sec
 Timing buffered disk reads:  476 MB in  3.01 seconds = 158.34 MB/sec

這是 SSD 硬碟. 意外發現. 我好像沒有驅動好. T_T

#  hdparm -I /dev/sda | grep SATA
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5
           *    SATA-I signaling speed (1.5Gb/s)
           *    SATA-II signaling speed (3.0Gb/s)

理論上 SATA II 可以達到 3.0Gb/s 也就是 384 MB/s 怪哉~

# hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   11688 MB in  2.00 seconds = 5852.55 MB/sec
 Timing buffered disk reads:  1564 MB in  3.00 seconds = 521.01 MB/sec

這是磁碟陣列. XD

# hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   25788 MB in  1.99 seconds = 12943.70 MB/sec
 Timing buffered disk reads:  376 MB in  3.00 seconds = 125.22 MB/sec

另外一個比較舊的磁碟陣列

查看 linux swap 使用狀況

Mem:  16427616k total, 16374588k used,    53028k free,      872k buffers
top - 16:48:42 up 153 days,  6:12,  3 users,  load average: 1.90, 2.02, 2.04
Tasks: 1210 total,   2 running, 1208 sleeping,   0 stopped,   0 zombie
Cpu(s): 12.5%us,  1.2%sy,  0.0%ni, 85.9%id,  0.0%wa,  0.1%hi,  0.2%si,  0.0%st
Mem:  16427616k total, 16371592k used,    56024k free,      524k buffers
Swap: 16779884k total,      208k used, 16779676k free, 15398336k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
29369 root      25   0 94600 7904 2632 R 98.5  0.0 118:27.17 sshd

一般而言用 top 指令. 預設是看不到 swap. 所以要額外按一些按鈕. 進去 top 然後按 O 再按 p 最後按 enter 就可以看到 swap

top - 16:50:29 up 153 days,  6:14,  3 users,  load average: 1.80, 1.94, 2.00
Tasks: 1210 total,   3 running, 1207 sleeping,   0 stopped,   0 zombie
Cpu(s): 11.6%us,  2.1%sy,  0.0%ni, 85.8%id,  0.0%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:  16427616k total, 16189080k used,   238536k free,      692k buffers
Swap: 16779884k total,      208k used, 16779676k free, 15218204k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
 8898 root      18   0  151m 6724  972 S  0.0  0.0   0:00.01 144m hpssd.py

在 Linux 下設定 iDRAC 透過 IPMI

手邊有幾台 Dell PowerEdge 有安裝 iDRAC 卡. 之前每次進去設定都要重新開機. 然後在開機過程中按 Ctrl + E 個別進去設定 iDRAC 的 IP 密碼…等等狀態相當麻煩. 如果我有100台那我就要不停的在等待開機畫面.不停在一直重複設定那些密碼…etc 後來, 我才知道可以透過 IPMI 的方式去管理那個 iDRAC.

在管理 iDRAC 前, 必須在你的 Linux 環境安裝 OpenIPMI, OpenIPMI-tools 和 OpenIPMI-libs 套件.

# yum install -y OpenIPMI

然後要啟動 IPMI 服務.

# chkconfig impi on
# service ipmi start

再來就可以設定 iDRAC 的狀態了, 例如我要設定該機器的 iDRAC 網路資訊並且啟用 IPMI 網路控制

# ipmitool -I open lan set 1 ipaddr 192.168.1.101
# ipmitool -I open lan set 1 defgw ipaddr 192.168.0.1
# ipmitool -I open lan set 1 netmask 255.255.255.0
# ipmitool -I open lan set 1 access on

為了確保 iDARC 不受到未授權的使用者重開你的機器.所以要記得改一下預設的 SNMP community. 設定 null 使用者及 root 的密碼.

設定 SNMP community 字串

# ipmitool -I open lan set 1 snmp TOP_SECRET

設定 null 使用者密碼

# ipmitool -I open lan set 1 password TOP_SECRET

設定 root 密碼

# ipmitool -I open user set password 2 TOP_SECRET

可以用下列指令檢查剛剛設定的值是否正確 :

# ipmitool -I open lan print 1

如果確認無誤, 那你可以到別台伺服器下 IPMI 指令進行管理. 你可以把你 iDRAC 遠端管理的密碼放在環境變數內方便操作. 雖然這樣會比較不安全!

# export IPMI_PASSWORD=”TOP_SECRET”

在下指令的時候可以用 “-E” 選項 就可以直接不打密碼就可以下達指令.

# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power status
Chassis Power is on

如果你要用互動的方式敲密碼就用 “-a” 的方式下指令.

# ipmitool -I lan -U root -a -H 192.168.1.101 chassis power status
Password:
Chassis Power is on

如果你想放在 script 內. 你可以使用 “-P” 的方式加上你的密碼明碼. 就可以下達指令.

# ipmitool -I lan -U root -P “TOP_SECRET” -H 192.168.1.101 chassis power status
Chassis Power is on

再來你就可以用下列指完成開關機

## 開機 – Power On
# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power on
## 強制斷電關機 – Power Off
# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power off
## 透過作業系統正常關機 – Graceful Shutdown
# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power soft
## 重新開機不切斷電源 – Reset System (warm boot)
# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power reset
## 斷電式重新開機 – Power Cycle System (cold boot)
# ipmitool -I lan -U root -E -H 192.168.1.101 chassis power cycle

其他資訊

## 檢查電流瓦特狀態
# ipmitool -I lan -U root -E -H 192.168.1.101 sdr type “Current”
Current | 94h | ok | 10.1 | 2 Amps
Current | 95h | ns | 10.2 | Disabled
System Level | 98h | ok | 7.1 | 245 Watts
## 檢查溫度狀態
# ipmitool -I lan -U root -E -H 192.168.1.101 sdr type “Temperature”
Temp | 01h | ns | 3.1 | Disabled
Temp | 02h | ns | 3.2 | Disabled
Temp | 05h | ns | 10.1 | Disabled
Ambient Temp | 07h | ns | 10.1 | Disabled
Temp | 06h | ns | 10.2 | Disabled
Ambient Temp | 08h | ns | 10.2 | Disabled
Ambient Temp | 0Eh | ok | 7.1 | 16 degrees C
Planar Temp | 0Fh | ns | 7.1 | Disabled
IOH THERMTRIP | 5Dh | ns | 7.1 | Disabled
CPU Temp Interf | 76h | ns | 7.1 | Disabled
Temp | 0Ah | ns | 8.1 | Disabled
Temp | 0Bh | ns | 8.1 | Disabled
Temp | 0Ch | ns | 8.1 | Disabled
## 列出 event logs
# ipmitool -I lan -U root -E -H 192.168.1.101 sel list
1 | 01/11/2011 | 11:40:54 | Temperature #0x0e | Upper Non-critical going high
2 | 01/01/2011 | 12:32:41 | Temperature #0x0e | Upper Critical going high

大致上這樣在搭配程式就可以遠端管理多台機器了.

ldap bdb_db_open 錯誤解決

重新啟動 ldap sever時, 出現下列錯誤 :

Checking configuration files for slapd: bdb_db_open: unclean shutdown detected; attempting recovery.
bdb_db_open: Recovery skipped in read-only mode. Run manual recovery if errors are encountered. config file testing succeeded

用下列方式應該就可以解決了 :

# service ldap stop
# /usr/sbin/slapd_db_recover -v -h /var/lib/ldap
# service ldap start