目前分類:Linux (7)

瀏覽方式: 標題列表 簡短摘要

 解決硬碟異音與亮度調整問題

1. 使用軟體中心安裝 laptop-mod-tool 套件

2. 修改 /etc/laptop-mode/laptop-mode.conf 當中

ENABLE_LAPTOP_MODE_TOOLS=1   //   設定使用Laptop 電源管理功能

ENABLE_LAPTOP_MODE_ON_BATTERY=1

ENABLE_LAPTOP_MODE_ON_AC=0

 

    // 順便解決 HDD 異音 

   # Power management for HD (hdparm -B values)

    BATT_HD_POWERMGMT=250    
    LM_AC_HD_POWERMGMT=254
    NOLM_AC_HD_POWERMGMT=254

3. 修改 /etc/laptop-mode/laptop-mode/conf.d/lcd-brightness.conf

CONTROL_BRIGHTNESS=1
 
BATT_BRIGHTNESS_COMMAND="echo 2"
LM_AC_BRIGHTNESS_COMMAND="echo 2"
NOLM_AC_BRIGHTNESS_COMMAND="echo 2"
#BRIGHTNESS_OUTPUT="/proc/acpi/video/VID/LCD/brightness"
BRIGHTNESS_OUTPUT="/sys/class/backlight/acpi_video0/brightness"

儲存
 
4. 執行命令  sudo update-grub
 
5.Reboot


解除 Laptop-mod-tools 對USB 裝置的干涉
1.編輯   /etc/laptop-mode/conf.d/usb-autosuspend.conf
BATT_SUSPEND_USB=0
LM_AC_SUSPEND_USB=0
NOLM_AC_SUSPEND_USB=0


調整螢幕對比值

1. 安裝 xcalib 套件
2. console 下  xcalib -co 90 -a
(重開機會回復)

監控系統溫度
1. 安裝 Psensor 套件
2. 於啟動應用程式當中勾選

調節 CPU 頻率,溫度與風扇聲
1. 安裝 indicator-cupfreq 套件
2. 於啟動應用程式當中勾選




 

 

 

 

 

puffer 發表在 痞客邦 留言(0) 人氣()

在 SAN network的環境裡 , 常常需要透過 san zone 的方式來規劃分配儲存資源 .

這時候就需要知道你的主機 HBA card 的WWN address , 來設定你的 fiber channel switch . 那麼究竟要如何查詢  WWN address 呢.? 

有下列幾種方式 :


方法1: /sys/class/scsi_host/host{n}/device/fc_host:host{n}/port_name File

在Redhat 5 以上 ( 包含 OEL and CentOS) ,   /sys/class/scsi_host/host{n}/device/fc_host:host{n}/port_name 這個檔案裡就包含了 HBA WWN 資訊 .

 n可能代表  0, 1, or 2 是你的系統而定 .

例如 :

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)

$ cat /sys/class/scsi_host/host1/device/fc_host:host1/port_name
0x2100001c111111c1

方法2: /proc/scsi/{adapter-type}/{n} File

在 Redhat 4 (含)以下 (包括 OEL and CentOS), 在 /proc/scsi/{adapter-type}/{n} file 這個檔案裡就包含了 HBA WWN 資訊 .

其中 {adapter-type} 如果是可能是QLogic HBA卡就表示為  qlaxxxx  , 如果是Emulex
的 HBA 卡 就填入 lpfc .
同樣的 n 可能代表  0, 1, or 2 是你的系統而定 .

以 qlogic 2300 HBA卡 ,在 RedHat 3裡為例 :

$ cat /etc/redhat-release
Enterprise Linux Enterprise Linux AS release 3 (Update 9)

$ cat /proc/scsi/qla2300/1
QLogic PCI to Fibre Channel Host Adapter for QLA2460:
Firmware version: 4.00.23, Driver version 7.07.05
Entry address = f888d060

Request Queue = 0x37280000, Response Queue = 0x37270000
Request Queue count= 512, Response Queue count= 512
Total number of active commands = 2
Total number of interrupts = -1635473967
Total number of active IP commands = 0
Total number of IOCBs (used/max) = (0/0)
Total number of queued commands = 2
Device queue depth = 0x20
Number of free request entries = 454
Number of mailbox timeouts = 0
Number of ISP aborts = 0
Number of loop resyncs = 0
Number of retries for empty slots = 0
Number of reqs in pending_q= 0, retry_q= 0, done_q= 0, scsi_retry_q= 0
Host adapter:loop state= , flags= 0x70013
Dpc flags = 0x0
MBX flags = 0x0
SRB Free Count = 4094
Link down Timeout = 045
Port down retry = 045
Login retry count = 045
Commands retried with dropped frame(s) = 0
Configured data rate: 4 Gb/sec

SCSI Device Information:
scsi-qla0-adapter-node=2000002c222c2cc2;
scsi-qla0-adapter-port=2100002c222c2cc2;
scsi-qla0-target-0=5006016022c22c2c;
scsi-qla0-target-1=5006016822c22c2c;

SCSI LUN Information:
(Id:Lun) * - indicates lun is not registered with the OS.
( 0: 0): Total reqs -877237672, Pending reqs 0, flags 0x0, 0:0:81,
( 0: 1): Total reqs 1074740881, Pending reqs 2, flags 0x0, 0:0:81,
( 0: 2): Total reqs 439861869, Pending reqs 0, flags 0x0, 0:0:81,
( 0: 3): Total reqs 417766757, Pending reqs 0, flags 0x0, 0:0:81,
( 1: 0): Total reqs 1174574, Pending reqs 0, flags 0x0, 0:0:82,
( 1: 1): Total reqs 1906876572, Pending reqs 0, flags 0x0, 0:0:82,
( 1: 2): Total reqs 1175529, Pending reqs 0, flags 0x0, 0:0:82,
( 1: 3): Total reqs 1173331, Pending reqs 0, flags 0x0, 0:0:82,

 

puffer 發表在 痞客邦 留言(0) 人氣()

當系統開機的過程中 , kerenel 會被先載入到記憶體 ,並控制著整個系統 . 系統一開起來 , 它會在螢幕顯示一連串的訊息 ,
內容是關於開機過程中kernel 所偵測到的硬體資訊 . 而這些訊息會擺在 kernel ring bufer 裡面 , 所謂的 ring buffer 就是當新的資訊進來 , 就會把就資訊覆蓋掉 , 所以稱  ring buffer . 如果你想要在開機之後讀取這些訊息 , 你可以使用 dmesg 指令 . 例如:

 翻頁顯示所有資訊
# dmesg | more
Bluetooth: L2CAP ver 2.8
eth0: no IPv6 routers present
bnx2: eth0 NIC Copper Link is Down
usb 1-5.2: USB disconnect, address 5
bnx2: eth0 NIC Copper Link is Up, 100 Mbps full duplex
....................................
..............................

 

 查詢可用系統記憶體

# dmesg | grep Memory
Memory: 57703772k/60817408k available (2011k kernel code, 1004928k reserved, 915k data, 208k init)

 檢視網卡狀態資訊 (UP/DOWN)

# dmesg  | grep eth
eth0: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 96000000, IRQ 169, node addr e4:1f:13:62:ff:58
eth1: Broadcom NetXtreme II BCM5709 1000Base-T (C0) PCI Express found at mem 98000000, IRQ 114, node addr e4:1f:13:62:ff:5a
eth0: Link up


Linux 可允許你改變內定的 ring buffer 儲存檔案的大小限制 , 只要改變 CONFIG_LOG_BUF_SHIFT 這個參數的值 .  一般 dmesg buffer 會儲存在類似這樣的檔/boot/config-2.6.18-194.el5
 , 視你的系統版本而定 .因此你可以用下面一行指令 ,尋找與改變該參數的值 .

#  grep CONFIG_LOG_BUF_SHIFT  /boot/config-`uname -r`
CONFIG_LOG_BUF_SHIFT=18

清除 dmesg Buffer

如果你想要在下次開機前 , 先清除 dmesg buffer , 你可以執行下面指令:

# dmesg -c

# dmesg

dmesg 時間標籤 (timestamp)

原則上  dmesg 是不會伴隨顯示時間標籤的 , 然而 linux 有提供以看見開機的每一行訊息的時間標籤的方法 ,

將 klogd service 啟用並設定紀錄訊息於  /var/log/kern.log  檔案裡 . dmesg 的訊息就會帶上時間標籤了.


# dmesg | grep "L2 cache"
[ 0.014681] CPU: L2 cache: 2048K

# grep "L2 cache" kern.log.1
Oct 18 23:55:40 ubuntu kernel: [ 0.014681] CPU: L2 cache: 2048K

 

puffer 發表在 痞客邦 留言(0) 人氣()

EMC PowerPath 系統管理

假使你的主機具有兩片 HBA 卡 , 連接到 EMC SAN storgae 設備上 , 再透過 EMC PowerPath 軟體 , 就來可以建置負載平衡(load-balancing)與 故障復原 (fail over) 的高可用性系統.

 

Powermt這個管理工具 ,就是用來輔助管理EMC儲存設備的多多路徑存取功能的 .在這篇文章裡 , 我們會討論這個指令要如何來應用 .

puffer 發表在 痞客邦 留言(0) 人氣()

探討Linux/proc檔案系統/proc directories,/proc files)


linux 檔案系統下 /proc 這個目錄,我們可以看到兩種類型的內容 -

一種是數字編號的目錄 , 另一種是與系統資訊相關的檔案 .


事實上 /proc 不不是一個實體的檔案系統而是虛擬的 . 其明顯例子就是當你

執行 # ls -l /proc/stat 指令時 , 你會注意到它顯示的檔案大小是 0 bytes , 但是你執行 #cat /proc/stat , 你卻可以看到這個檔案的內容 .


而有幾個 linux 的系統指令輸出結果 , 事實上它就是從 /proc 讀取資訊 ,

然後以某種格式呈現出來的 .


1.先來說說第一種依數字編號的目錄

當你執行 # ls -l /proc , 你會看到很多以數字為名的目錄 , 這些數字實際代表的是系統正運行的 process ids , 也就是程序編號 , 而相對應的目錄裡

所存放的檔案也就對應為該 PID 的程序所有.


下面列出的就是每個程序對應編號目錄裡所包含的重要檔案:


  •  
    • cmdline – command line of the command. 指令列

    • environ – environment variables.

      環境參數

    • fd – Contains the file descriptors which is linked to the appropriate files.

      連結到特定檔案的描述資訊

    • limits – Contains the information about the specific limits to the process.

      程序的特別限制資訊

    • mounts – mount related information

      掛載資訊

而其中所包含的重要連結有:

  • cwd – Link to current working directory of the process. 程序目前所在工作目錄

  • exe – Link to executable of the process. 程序的執行檔連結

  • root – Link to the root directory of the process. 根目錄的連結



2. 第二種就是 /proc 底下關於系統資訊的檔案, 例如:



  • /proc/cpuinfo – 關於 CPU的資訊

  • /proc/meminfo – 關於記憶體的資訊

  • /proc/loadvg – 附載資訊

  • /proc/partitions – 磁碟分割狀態資訊

  • /proc/version – linux 版本資訊



因此linux 某些系統檔案 ,就從/proc目錄底下讀取所需資訊,然後顯示出來,

例如 free 這個指令 , 它會從 /proc/meminfo 檔案讀出資訊 , 然後有格式的顯示出來 .



想了解更多個別 /proc 底下檔案所代表的含意,可以執行 'man 5 FILENAME'



puffer 發表在 痞客邦 留言(0) 人氣()


   lun的全稱是logical unit number,也就是邏輯單元號。因為scsi線上可掛接的設備總數量是有限制的,一般為6個或者15個,我們可以用target ID(scsi id)來描述這些設備,設備只要一加入系統,就有一個-ID .
  而現在 storage 技術越來越強大 , 實際上應用上可能需要用來描述的對象,會遠遠超過傳統 scsi ID 數目的限制 , 為了解決這個問題 ,於是採用了lun的概念,也就是lun id 的作用, 擴充了target id . 在每個target下都可以有多個lun device,一般也可通常簡稱lun device為lun. 如此一來 , 每個設備的描述就由原來的target x變成target x lun y了, 描述設備的能力也就增加了, 這概念簡單比喻 , 就如同電話號碼後面 , 再加上個人分機代號一樣 .


   lun id不一定等於某個設備或任何實體屬性 , 只是個號碼而已 , 在實際應用 , lun可能是磁碟分割磁區 , 可能是磁帶機, 或者是磁帶櫃 等等. 很多時候lun 不是什麼可見的實體,而是一些虛擬的對象。比如一個磁碟陣列 ,主機那邊看作是一個target device,為了某些特殊需要,我們需要將磁碟陣列櫃的磁碟空間劃分成若干個小的單元給主機來用,於是就產生了一些什麼邏輯驅動器的說法,也就是比 target device級別更低的邏輯對象,習慣上這些更小的磁碟資源就稱之為lun0,lun1,lun2....等等的.
   
    實務上初學者很容易把陣列裡面的磁碟和主機的內部磁碟的一些概念搞混淆了.在磁碟陣列和磁帶櫃普遍的時代,storage越來越智能化,幾乎可以視為一個獨立的主機 ,因此實際上storage和主機的元件識別是劃分獨立的 . 明確來說 , 如果我們把storage當作一個獨立的主機來看,理解起來就很簡單了。我們說到lun的概念的時候,我們就要將分為兩個層面。一個層面就是在陣列這個機器的os識別到的範圍,一個層面就是server的os識別到的範圍 .
    這兩個層面是相對獨立的,因為如果我們把storage當作一個主機來看,那麼它自然有自己的 device,target,lun之說,
而server也有自己的device,target,lun之說;另外一方面,這兩個層面又是相互關聯的,一個陣列的控制系統,大多都
有虛擬化的功能,陣列想讓主機看到什麼樣的東西,主機才能看到相應的東西。當然,server識別到的最小的存儲資源,
就是lun級別的。那麼主機的HBA卡看到的storage上的存儲資源就靠主要兩個東西來定位,一個就是storage系統的控制器(target),一個就是lun id,這個lun是由storage的控制系統給定的,是storage系統的某部分存儲資源。


有了獨立的磁碟陣列用了之後,server只要看到storage的控制系統,就有可能使用磁碟陣列的磁碟資源,但是磁碟陣列不
可能只為某一個server來使用,所以他必須管制主機使用某部分磁碟資源 . 這個管制分為兩個部分:

一部分就是lun mapping,類似於綠色通道,就是保證server能看到某部分存儲資源 ,
一部分就是lun masking,類似於警戒線或過濾器 ,可保證server只可訪問給它分配的存儲資源,而沒分配給server的資源,就無法存取.

實現lun masking和lun mapping有三種方法:

一個是基於storage控制系統來設置 (storage base),
   基於 storage 控制系統得設置,是比較常見的設置,比如很多磁碟陣列的控制系統,本身就能設置lun被某server看到 .
   比如FastT 的partition功能。
一個是基於 san switch 系統來設置 (san switch base),
   基於san switch 系統的設置,也是一種常用的方法,也就是zoning , 相同 zone 的成員 , 才可互相存取.
一個是基於serveros來設置  ( server base  )
   基於serveros的設置,比較少採用,一般採用安裝某些操作系統上安裝某些軟體來實現,因為這個方法全由server主導,
   彈性與安全性上 , 較為不足 , 一般比較少用.


再者現在存儲網路 (san network) 越來越發達了,一個lun有多條通路也已經很平常了 ,server使用多個HBA連接到存儲網路 ,存儲網路又可能是由多個交換設備(san switch)組成 ,而storage 又可能有多個控制器和迴路,lun到server的存儲網絡迴路又可能存在著多條不同的邏輯迴路 . 原則上同一個physical lun 在server, 因為各種可能路徑 , 會被識別為多個設備 , 因為os區別設備無非用的是 target id,lun id來區別 ,只要號碼不同,就認為是不同的設備 , 這就是 lun的multi-path 現象.

實務上要明確定位一個真正的physical lun,具體的做法,就是生成一個特別的設備文件,由操作系統應用操作這個特殊的設備文件 ,,設備文件+driver+firmware 的一個作用,來告訴操作系統該怎麼使用這個設備 , 這也就是所謂的" 多路徑管理軟體" . 多路徑管理軟體會從driver和設備文件著手,告訴了操作系統怎麼來處理這些身份複雜的lun。

puffer 發表在 痞客邦 留言(1) 人氣()

將既有的一個 vg , 移到另一個系統將其掛載 ,步驟如下 : 


1. Unmount the file system

首先,確定沒有任何使用者正在對這個 Volume 做任何的存取 , 然後 umount 它 .

# unmount /testvg/data


2. Mark the volume group inactive

將該 VG 進行 inactive , 使其與kernel 脫離

# vgchange -an testvg
vgchange -- volume group "testvg" successfully deactivated
         


3. Export the volume group

為了避免舊系統再繼續存取它, 需將它export 出來 ,並為移除做準備 .

# vgexport testvg
vgexport -- volume group "testvg" successfully exported
         


接著就可以將舊系統關機 ,將硬碟取下裝到新系統 ,或是將 san storage lun 重新指配給新主機 ,

後將新系統開機 .



4. Import the volume group

假設加入新系統後 , 新的 device name 為 /dev/sdb ,

執行 pvscan , 出現以下訊息:
# pvscan
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- inactive PV "/dev/sdb1"  is in EXPORTED VG "design" [996 MB / 996 MB free]
pvscan -- inactive PV "/dev/sdb2"  is in EXPORTED VG "testvg" [996 MB / 244 MB free]
pvscan -- total: 2 [1.95 GB] / in use: 2 [1.95 GB] / in no VG: 0 [0]
         

再來就可以 import 這個  VG , 並掛載入檔案系統 .

假設你用的是 LVM2 , 則執行 :

# vgimport testvg
  Volume group "testvg" successfully imported
         

假設你是要將其 import 到 LVM1 系統 , 則要執行 :

 # vgimport testvg /dev/sdb1 /dev/sdb2
vgimport -- doing automatic backup of volume group "testvg"
vgimport -- volume group "testvg" successfully imported and activated
         


5. Activate the volume group

再來要存取該 VG之前要先 active 它 , 並讓系統紀錄狀態 .

# vgchange -ay testvg
         

6. Mount the file system

最後將其掛載

# mkdir -p /mnt/testdata
# mount /dev/testvg/data  /mnt/data

         
現在這個VG 在新系統就可以正常使用了.

puffer 發表在 痞客邦 留言(0) 人氣()