2015年6月29日 星期一

64位元PXE模式開啟

如果要讓主機板能支援 64位元的 PXE Boot,請至BIOS內設定 network stack -> Enabled.

圖示如下:

2015年6月28日 星期日

使用Linux,並啟動SOL(Serial Over LAN)管理伺服器

管理者因為要一次多台管理,因此在管理server多半都採用command line (CLI)的方式做操作。
如果使用GUI,那麼畫面通常沒辦法把完整訊息傳至terminal。而當管理者要登入,只能透過iKVM或是至機房實機操作。但這不但耗費時間,且如果要對數百台做韌體、軟體更新,那一台一台操作會曠日廢時。

因此很多網管在針對伺服器管理都會透過IPMI方式,把畫面redirect到putty或是secureCRT這類軟體上進行操作。 要如何實現? 


  • 首先,IPMI在v2.0的spec有定義SOL的支援。因此,要使用SOL,必須為IPMI 2.0支援的伺服器(現在伺服器只要有IPMI的,理論都有v2.0的支援才是!) 
  • 再者,BIOS及IPMI韌體需支援。 
  • 其次,配備基礎網路設備,能讓管理者access被管理伺服器的IPMI (這個有點廢話,但是不說怕有人誤會是在機器前操作......)
操作:
  1. 先至BIOS啟動SOL設定。
  2. 接著,確定Console redirection設定
  3. 如果使用Microsoft console,請把Outband Management的功能打開。

  4. 到這步驟,已經完成BIOS設定。接著要去Linux內設定讓OS能redirect terminal至IPMI。

  5. /boot/grub/grub.conf 尋找 "splashimage=(hd0,0)/grub/splash.xpm.gz",並把它用 "#" 符號給屏蔽掉。
  6. 在splahimage下方,輸入這2行。
  7. serial --unit=1 --speed=115200 --word=8 --parity=no --stop=1
    
    terminal --timeout=10 serial console
  8. 同時,在相同檔案內grub.conf找到kernel,並且在其字串最後面輸入COM port設定。

  9. 完成圖如下:
  10. 最後,在 /etc/inittab 內,輸入:
  11. s0:2345:respawn:/sbin/agetty ttyS1 115200

    說明: ttyS1 會根據你設定的COM port# 而有所不同。如果是COM1,那麼就是ttyS0。請注意這點有所不同。
    到這裡,Linux的設定就結束了。現在要啟動SOL服務。

  12. 請先下載 ipmitool 或是 SMCIPMITool。執行指令進入 shell 模式
  13. SMCIPMITool IP_ADDR USERNAME PASSWORD shell
    IP_ADDR: IPMI的IP地址
    USERNAME: IPMI的登入使用者帳號
    PASSWORD: IPMI的登入使用者密碼

  14. 輸入指令,啟動SOL Windows
  15. sol window

    系統重啟後,就可以看到BIOS畫面。當進入Linux後,terminal也會打在sol window上。這樣就能透過指令方式,輕鬆管理伺服器了。





2018/6/22更新:
如果採用RHEL/CentOS 7版本,那麼可以按照以下方式做。

  1. Fedora有講到這個項目設定,參閱 這裡
  2. 修改 /etc/default/grub
    #vim /etc/default/grub
    Add
    GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"
    GRUB_TERMINAL="serial"
    GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
  3. 更新開機grub
    #grub2-mkconfig -o /boot/grub2/grub.cfg

2015年6月21日 星期日

測試Nvidia/ATI/Intel Xeon PHI GPGPU卡,先卸載onboard VGA

在測試比較舊的Linux版本時,執行可能會遇到效能或是出現error code。
此時請先把onboard VGA的驅動程式給卸載,再進行測試,否則容易出現錯誤導致測試failed.
要如何卸除或是解決此問題?

nVidia:
關閉aspm  (pcie_aspm=off 加入至grub),且使用 Supermicro X8/X9 主板,請這樣做:

/etc/modprobe.d/blacklist.conf
最末行,加入
blacklist nouveau
關閉aspm  (pcie_aspm=off 加入至grub),且使用 Supermicro X10/X11 主板,請這樣做:

vi /etc/modprobe.d/blacklist.conf
最末行,加入
blacklist ast




Intel Xeon PHI:
關閉aspm (pcie_aspm=off加入至grub),如果出現錯誤,請這樣做: 編輯:
vi /etc/grub.conf
找到 kernel 在最末端,加入:
intel_iommu=off




Reference: blacklist 的 driver_name 名稱及其對應裝置
"ark" - Ark Logic
"ast" - ASPEED Technology
"cirrus" - Cirrus Logic
"dummy" - Virtual/Offscreen Framebuffer
"fbdev" - Linux FrameBuffer Device
"glint" - 3DLabs
"i128" - Number Nine
"i740" - Intel 740
"intel" - Intel Integrated Graphics Processor
"mach64" - ATI Mach64
"mga" - Matrox
"modesetting" - Modesetting VESA driver
"neomagic" - NeoMagic
"nouveau" - Nvidia open-source 2D/3D driver*
"nv" - Old Nvidia VESA 2D driver
"openchrome" - VIA/S3 Chrome Graphics
"r128" - ATI Rage 128
"radeon" - ATi/AMD Radeon/FireGL*
"s3virge" - S3 Virge
"savage" - S3 Savage
"siliconmotion" - Silicon Motion
"sis" - SiS
"tdfx" - 3Dfx Voodoo Banshee/3/4/5
"tga" - DEC TGA
"trident" - Trident
"v4l" - Video 4 Linux
"vesa" - VESA
"vmware" - VMware Guest OS
"voodoo" - 3Dfx Voodoo 1/2/Rush

2015年6月18日 星期四

CentOS/RHEL 安裝Nagios

Nagios提供非常多完整的plugin套件。
如果是網管人員,Nagios整合了許多軟硬體上的監控功能,只要透過導入plugin的方式就能實現。

如何安裝?
先至 Nagios 官網下載。(有分 XI 版跟Nagios 2.x/3.x版本),這裡就先介紹 XI 版本安裝模式。


↓ 進入官網後,點擊 Download Free Trial 連結。
↓ 如果不想填寫資料,可以直接點 Skip to Download
↓ 選取軟體要安裝在哪個作業系統
下載完畢後,透過 WinSCP 這類SSH檔案上傳軟體,傳至伺服器主機。

↓ 接著,解壓縮
tar zxvf ./xi-2014r2.7.tar.gz

↓ 進入解壓縮目錄
cd nagiosxi

↓ 執行完整安裝 (如果不想回答問題,都採預設值,可以接 -n 指令,如 ./fullinstall -n)
./fullinstall

軟體會檢查所需的套件是否有安裝。沒有安裝也會幫你預先裝上,相當方便。 大約等待數分鐘後,系統會顯示安裝好的IP位置路徑。
第一次登入會要求輸入管理密碼。輸入完成後,就可以採用 nagiosadmin 及 所設定的密碼登入了。


Nagios XI並不是免費的喔,XI有60天試用的限制。喜歡Nagios XI可以至他們官網購買License。

另外,如果採用Supermicro主機板或是系統,這裡 可以下載套件。

2015年6月15日 星期一

wget下載目錄內所有檔案

wget用man指令去查看是這樣寫的,
Wget - The non-interactive network downloader.
顧名思義就是文字介面下載器。它並非像Windows介面那樣,用拖拉方式就可以下載,而是需要透過文字指令。這裡不介紹每個參數使用,如果想查詢每個參數的使用方式,可以用 man wget 查看。

常常會看到目錄下有一堆檔案連結,如果一個一個點擊下載,那要花很久時間且費力。
可以透過以下方法來實現這個需求。


wget -r -np -nH http://FILE_ADDR

例如在hinet idc上抓CentOS套件資料:


  • -r   在下載端的目錄,建立所有經過的目錄結構。
  • 也就是說,在系統下,你會看到 CentOS/6.6/os/x86_64/Packages/ 這個結構出現。
  • -np 不下載指定目錄的上一層資料。
  • 用上一個例子來說明,也就是說不會到x86_64下抓檔案。如果下這個參數,有時候會抓到index.html或是其他不相關的檔案。
  • -nH 關閉產生目錄結構連結至遠端伺服器。
  • -R   規避指定檔案
當下載完成,發現會出現一些 index.html

不想這些檔案出現,可以加入 -R 參數,例如:

wget -r -np -nH -R index.html* http://mirror01.idc.hinet.net/CentOS/6.6/os/x86_64/Packages/

* 符號表是index.html後面所有形式的內容都不下載。





2015年6月9日 星期二

關閉電源模式PMBase

DOS下使用 debug.exe 工具,進行關閉伺服器。

  1. 建立文件檔,如down.txt,內容填入
    PCH用這個:
     o 405 3C 
     quit

    ICH10R用這個:
     o 805 3C 
     quit

  2. 再來,建立一個.bat執行檔,如shutdown.bat
  3. 導入檔案於debug程式內。
     debug < down.txt

    執行後,系統就會關機了。 有興趣的可以參考Intel南僑chipset的PMBase設定。





2015年6月8日 星期一

查驗Linux是否啟動ASPM

ASPM關閉可以透過BIOS作用,但在Linux下,其設定往往會被overwrite掉。
當ASPM開啟後,系統的PCIe (尤其是網卡network Adapter),在進入省電模式下,要立即馬上再恢復工作,極可能產生網路斷線問題。

解決方法,除了在grub裡面加入 pcie_aspm=off 外,還有一項可以確認是否為開啟狀態。


  1. 透過指令lspci找尋裝置 (example, 查看 i350 network adapter)
  2.  lspci -vv |grep -i i350
  3. 例如查看i350網卡的第一個port,其Bus及device raw data
  4. 查閱i350規格書,並找 Link Control Register位置。
  5. 查看 0xB0 及 0xB1 位置,對照第2點的register raw data。0x40為8bits+8bits組合,00也為相同模式,可以解析成以下圖:
    0x40 為 1000 0000 拆解,對應Intel規格書,第1+2bit的值(看上圖黑色數字),可以是以下組合:

  6. 00b = PM disabled.
    01b = L0s entry supported.
    10b = L1 Entry Enabled.
    11b = L0s and L1 supported.
    也就是說,目前為00L0s及L1全部關閉狀態
    如果有出現0x41 (1000 0001),那麼L0s就為開啟。
    反之,出現0x42 (1000 0010),為L1開啟,L0s關閉。
    如果是0x43 (1000 0011),那麼就是L0s及L1全部開啟(enabled)。








2015年6月2日 星期二

透過 vlan 方式切開 switch 指定的網路埠

常常在實驗室會需要使用Switch來測試不同環境。如果每次都要拿一台layer2 switch,那肯定會借不完。

因此就有著想透過VLAN方式把port給切開,讓一台switch能使用不同2個網路環境,而又不會相互影響其運作。

市面上的Layer 2 Ethernet Switch設定其實都大同小異。這次我拿Supermicro SSE-G2252 1G Layer 2 Ethernet Switch來做示範。

先來說原理,透過圖片說明講解會比較容易懂。
說明:

  1. VLAN ID 為 1 是將所有的port untag,並指tag100, tag200給指定的埠。
  2. VLAN ID 為 100 是將   1-24 埠給綁訂成一個帶VLAN 100 tag值。
  3. VLAN ID 為 200 是將 24-48 埠給綁訂成一個帶VLAN 200 tag值。

如此一來,當封包帶tag 100值,進入到VLAN 1 untag時候,只有那些設定VLAN 100的會回應。VLAN 200的會忽略不管。

先來看看VLAN 1 untag設定:

↑ 所有port都為untagged,指定PVID值給不同指定的埠。例如我要切開1-24與24-48埠為2組不同區域。那麼我1-24為帶PVID 100 (就是VLAN 100建立的選項)。相同的25-48埠就為PVID 200值,untagged。


↑ 接著,在VLAN 100裡,設定VLAN 100為untagged (這次示範,當然也可以為tagged值,讓forwarding就帶tag,那麼在同一個VLAN port member裡,就能切開2個不同群組),而VLAN 200則設定為None。也就是說在VLAN 100裡,忽略把封包丟去給 VLAN 200的群組。


↑ 相同的,在VLAN 200群組,設定VLAN 100為None,VLAN 200為untagged。

儲存設定後,就可以把upper-link的網路線,分別插在1-24port的其中一port,第二條upperlink就接在25-48port的其中一port。

如果還有10G或是1G SFP的upper link,那麼可以設定在49,50,51,52 port,識別上也會相對的簡單。提供做為參考~~~~~