Was this page helpful?

TTY Log(Firmware Log)

    內容表格
    沒有標頭

    201205240603_lsi_raid_global_banner_issue.gif

    TTY Log指的就是LSI的Firmware Debug Log. 他是一種Hardware RAID Logging操作方式. 簡單來說, 可以用一句話來表達:
    HWRAID Logs are sved in NVRAM
    這份Log是被儲存在硬體式NVRAM. NVRAM在LSI RAID Controller中是非常重要的機制, 他實現了幾種操作:
    1. RAID Controller部份組態儲存
    2. Logging建立與追蹤
    3. Write-journaling機制
    201205240703_lsi_raid_ttylog_issue.gif
    比方說, 在LSISAS2108 RoC產品包含了32KB的NVRAM, 而LSISAS2208則是128KB NVRAM. 在這一篇會說明何謂TTY Logging, 要如何使用?!
    甚麼是TTY Logging呢? 下面的簡要描述便說明了他的應用:
    1. TTY Log is a FW transaction log and is held in controller memory and saved to NRAM during power down
    2. Memory resident TTY log is lost during power interruption unless a battery is present
    3. The last three saved TTY log are available in NVRAM
    TTY Log是韌體控制操作, 並且被操作在控制器專屬的記憶體(Hot buffer), 在電源丟失的情況下會快速寫入到NVRAM. 如果沒有透過BBU緒電的話, 那Hot buffer上的TTY log便會丟失, 而NVRAM至少會保留最後三筆TTY log資訊.
    前面提到過, TTY Log可稱之為Firmware Debug Log, 他表達的三種情況與功用:
    1. 即使RAID發生啟動錯誤了, 她依然在工作.
    2. 提供更為詳細的資訊
    3. 適用於較複雜的情況
    How to get TTY Log?/我該如何取得TTY Log數據?
    我們可以透過兩種方式取得這方面資訊:
    1. 使用MegaRAID Storage Manager(MSM)來進行GUI介面操作
    2. 透過MegaCLI的CLI介面來鍵入相關命令來取得log資訊
    針對1的情況透過MSM工具在控制器圖樣的項目選擇按右鍵選取Save TTY Log便會提出相關數據可保存在一份txt文字檔.

    201204200917_lsi_raid_ttylog_issue.gif

    在2的情況下則是鍵入相關命令來取得相關數據, 如下所示:
    megacli -fwtermlog -a0 > ttylog.txt
    使用上述的命令便可取得TTY log數據. 針對TTY log的資訊組成有幾個部分:
    1. Controller Properties/控制器屬性與組態
    2. 已被偵測出來的實體儲存裝置相關屬性和組態
    3. 邏輯裝置(Logical Device)相關屬性和組態
    4. 錯誤日誌和感測代碼(Sense Code)日誌資訊
    5. 以時間為基準的FW交易日誌, 也就是控制器做了哪些行為.
    一個典型的TTY log範例如下所示:
    T0: Initializing memory pool size=002FDD24 bytes
    這段資訊表示控制器正在初始化可用的記憶體大小界定. T這個字眼表示了甚麼意思呢? Tx也就是x為number, T是代表了從秒數下時間(T: Time)基準的當前情況, 他搭配了數字組合. number x會參考當前的韌體操作控制器操作行為的時間值.
    根據上面範例, 在經過T0階段以後, 控制器已被初始化, 透過韌體操作的行為方式, 那取得的debug日誌資訊會包含系統日期與時間. 根據該範例可以知道, TTY log作為觀察韌體操作控制器行為以及所發生的例外情況進行追蹤是非常有意義的, 雖然它呈現的資訊頗複雜, 但正是因為如此, 才可提供遠比Event log更為詳細的資訊.

    下面提供了一些範例來快速理解TTY log的相關參數:
    控制器屬性, 查看韌體版本:
    T0: Firmware version 1.40.92-0746 built on Nov 3 2009 at 12:10:24
    在T0階段的時候, 可以取得韌體的當前版本資訊
    控制器屬性, 可用的快取記憶體大小:
    T3: DRAM SIZE=512 MB
    控制器屬性, 取得重建比率:
    rebuildRate=1e
    控制器屬性, 是否啟用硬體警示器(alarn):
    alarmEnable=1
    控制器屬性, 對於PD的spinup延遲時間:
    spinupDelay=6

    裝置偵測, 取得已被偵測出來的實體儲存裝置資訊:
    T28: 12 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 0c 5000c500104457ed 04 03 0c
    T28: 13 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 0d 5000c50020c78d55 04 04 0d
    T28: 14 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 0e 5000c500103f3675 04 05 0e
    T28: 15 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 0f 5000c500104a4599 04 06 0f
    T28: 16 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 10 5000c50020ee7d25 04 07 10
    T28: 17 f1400005 00020 00 e8e088af 0 0 SEAGATE ST32000444SS 0005 0 0 11 5000c50020eee125 04 08 11
    這代表了在T28階段, 有6個儲存裝置被偵測出來, 透過控制器操作.

    裝置偵測, 取得當前的邏輯裝置(Logical Device)資訊:
    T59: ARs configured: 2
    T59: Ar 0: size=172aa800, activeLd=1, numPd=2, seq=0, PDs: 10(1a/0) 11(1a/1)
    T59: Ar 1: size=e8b6d000, activeLd=2, numPd=8, seq=0, PDs: 12(1a/3) 13(1a/4) 14(1a/5) 15(1a/6) 16(1a/7)
    17(1a/8) 18(1a/9) 19(1a/10)
    T59: LD 0: L=1 SS=512 Size=172aa800 NL=1938 Status=3 DT=833 BT=1337, MF=0030, Encr=0
    prop=[ID=00,dcp=65,ccp=65,ap=0,dc=2,dbgi=0]
    T59: span 0: sBlk=00000000, nBlk=172aa800, ar=0
    T59: LD 1: L=6 SS=512 Size=57448e000 NL=1938 Status=3 DT=833 BT=1337, MF=0120, Encr=0
    prop=[ID=01,dcp=6d,ccp=6d,ap=0,dc=2,dbgi=0]
    T59: span 0: sBlk=00000000, nBlk=e8b6d000, ar=1
    在T59階段, 首先看出ARs configured: 2表示有2個已建立的邏輯儲存裝置. Ar 0和Ar 1分別表示了相關的裝置資訊.
    在LD 0的描述看出了這是針對他對應了Ar 0, 並且Stripe-size被設定為512KB. 而且L=1表示RAID mode說明了他建立了R1模式. LD 1這部份各位可以慢慢推敲出來!..

    Was this page helpful?
    標籤 (Edit tags)
    • No tags
    您必須 登入 才能發佈評論。
    Powered by MindTouch Core