PXELINUX 是 SYSLINUX[r1] 的一個衍生軟體。PXELINUX,讓我們可以使用符合 Intel PXE (Pre-eXecution Environment) 規格的網路卡 boot ROM,直接從區域網路上啟動 Linux 核心及整個系統。同樣可以從區域網路上啟動 Linux 的軟體系統還有 NILO[r2] 和 Etherboot[r3],但它們是使用自己的 boot ROM。

這兩種網路開機的方法各有利弊。使用 PXE boot ROM 的話,好處是只要網路卡支援 PXE 功能 (Intel 的網路卡幾乎都支援),直接就可以用來進行開機,不必再去找 ROM 燒錄機來燒錄 boot ROM;壞處是開機的功能會受限於 PXE,不大能自訂。利用自訂的 boot ROM,好處是彈性可以很大;壞處是要先取得 boot ROM 的晶片硬體,插在網路卡上才能實作,這需要有 ROM 的燒錄機,成本比較高[r4]。

這裡我們要討論的是使用 PXELINUX 來實作 Linux,特別是 Debian 網路開機的方法。

Linux 透過 PXELINUX 進行網路開機時,過程基本上是:

0 PXE boot ROM 對區域網路廣播,尋找可以提供資訊的 DHCP/BOOTP 伺服器。

0 DHCP 伺服器測知要求資訊的對象是 PXE boot ROM (PXEClient),故將 PXELINUX 程式的位置連同基本的網路組態一起提供回去。

0 PXE boot ROM 根據所取得的資訊,從 TFTP (Trivial FTP) 伺服器處下載 PXELINUX 程式檔案,然後執行。

0 任務從 PXE boot ROM 交到了真正實行開機動作的 PXELINUX 手上。PXELINUX 會先根據自己所被分配到的 IP 位址,從 TFTP 伺服器處取得開機設定資料。

0 PXELINUX 的開機設定檔寫法與 SYSLINUX 相同。我們要在 PXELINUX 的設定檔裡面指定 Linux 核心檔案的位置和相關的核心參數資訊 (至少包括本機 IP 與 NFS 根檔案系統的位置)。

0 當 PXELINUX 成功地透過 TFTP 抓到了核心檔案之後,就會用同時取得的核心參數來啟動核心。這時候系統的控制權就從 PXELINUX 交到了 Linux 核心手上。

0 如果在 PXELINUX 設定檔裡的資料都沒有錯誤的話,Linux 應該就能成功地以 NFS 掛載根檔案系統,一步步地完成開機動作。

為了讓這個流程可以順利進行,我們不但需要在節點 (要進行網路開機的電腦) 上安裝支援 PXE 的網路卡,並在 BIOS 裡作好組態,讓系統預設從網路開機,而且要在作為資料來源的伺服器上設定許多相關的網路服務:

- DHCP 伺服器

我們使用 ISC DHCP3 ('dhcp3-server') 伺服器套件。

- TFTP 伺服器

我們使用 Advanced FTP ('aftpd') 伺服器套件。

- DNS 伺服器

我們使用 BIND9 ('bind9') 伺服器套件。

- NIS 伺服器

組態 NIS 目錄服務的目的是為所有由網路開機的系統提供統一的登入資料。這部分也可以用 LDAP 或 winbind 來取代。我們使用 'nis' 套件。

- NFS 伺服器

為所有經由網路開機的系統提供檔案。我們使用 'nfs-kernel-server' 套件。當然,為了讓節點可以順利開機,必備的工具程式一定要先準備好,放在伺服器上,讓各節點來掛載使用。

有時候,我們還會另外組態一些服務,來滿足特別的需要:

- Linux NAT

通常我們是因為有了某些比較特別的需要,才會把電腦組態成利用網路開機,所以這些網路開機的電腦多半是一群一群的。

在大部分的情況下,我們不希望這些節點直接暴露在網際網路上 (噢,不過也有一些情況是反過來的)。此時,如果節點有需要存取網際網路的話,我們可以在伺服器上實作一個 NAT (Network Address Translation),讓內網路上的節點可以用伺服器的身份對外進行連線。從外部只能看到連線來自 NAT 伺服器,不能透進去看到節點,達到保護的目的。

我們必須一一地把以上的服務及相關的資料建好,才能順利地用 PXE 和 PXELINUX 執行開機動作。不過,更重要的是,當節點都可以正常啟動之後,我們還要懂得如何管理這些沒有磁碟的電腦。因為所有節點的組態資料都存在伺服器上面,良好的管理與組織方法不但可以減少重複資料的儲存空間浪費,更能增進管理工作的效率。

.. [r1] "SYSLINUX":http://syslinux.zytor.com/

.. [r2] "NILO":http://www.nilo.org/

.. [r3] "
Etherboot":http://sourceforge.net/projects/etherboot

.. [r4] 或者是使用別人製作好的 boot ROM 晶片,但這樣就失去彈性了,不如直接用 PXE。
Posted by yungyuc at 17:50, 0 comment, 0 trackback.
Debian GNU/Linux 是一個很適合無磁碟化的作業系統。在 Linux 之中它具備非常廣的套件庫,幾乎所有無磁碟化所需要的軟體都包含在了 Debian 官方的發行版本裡面。

無磁碟化的電腦有兩個主要的好處:

- 沒有磁碟,不會墜機

磁碟 (硬碟機) 容量愈來愈大,價格愈來愈低,損壞率也愈來愈高。真正重要的資料,我們如果還敢只存在沒有容錯功能的磁碟上,那膽子實在是很大。

為了保護資料,我們可以採取的手段有定時備份、採用容錯的 RAID、定時更換磁碟機等等。但對於系統碟 (只用於作業系統和軟體資料等目的的磁碟,不存使用者的資料) 來說,其中的資料多半可以在短時間內重新建立回來 (相對於失去工作資料後的重建時間),所以花大錢昇級成 RAID 不太划算,完整備份又太麻煩 (通常需要先結束系統,用另外的軟體進行),有時候我們就不管它了。

如果作業系統不必存在本機磁碟上,那麼連同本來就能放在網路上的工作資料,本機上就可以完全不接上任何磁碟,完全不會有磁碟損壞的問題了。

- 集中設定資料,方便管理

假設我們有十數台用途相似,組態也類似的電腦。每次要修改某個設定資料,譬如說每台電腦的主機名稱,就要到每一台電腦上一個個打開檔案,比對資料然後修改。即使我們有很方便的遠端操作介面 (例如 ssh),這還是一件煩人又容易出錯的工作。

如果電腦是無磁碟系統,那麼表示所有節點的設定資料都會儲存在伺服器上,那麼修改這些設定就輕鬆了。通常我們在放置這些資料的時候就會好好進行組織規畫,那麼甚至不用花什麼力氣就可以寫好批次作業的程式,不管要改什麼設定,都只需要一個動作。

另外,系統的備份與還原也就只需要針對同一份資料進行,比起出問題時要備份還原十幾個甚至更多系統,工作起來會容易得多。

當然無磁碟系統也有它的限制和缺點:

- 需要比較快的網路和伺服器

基本上以一般的應用來講,Fast Ethernet (100Mbps) 已經很夠用了。和具有本地磁碟的一般系統比起來,無磁碟系統在開機時會耗掉更多的網路頻寬,伺服器的負擔也更大。不過當系統載入了應用程式之後,在不存取使用者資料的情況下,對網路的負載和有磁碟系統就沒有多少差異了。

如今 1000Mbps 的 Gigabit Ethernet 已經普及到了一般的商務級 PC 上,單購網路卡的成本也不到 2,000 元新台幣。事實上區域網路的頻寬不是太大的問題。即使頻寬真的不夠用,適當地組態網路拓璞和伺服器的硬體,多半可以解決問題。

- 節點需要比較大的記憶體

因為無磁碟系統沒有磁碟可以作為虛擬記憶體的置換 (swap) 空間,所以主記憶體是多大就是多大,空間不夠就不能夠再執行程式,不像一般的系統還能把背景或不在使用中的程式置換到磁碟上,把記憶體空出來給新的程式使用。

在 Linux 上也有技術可以透過網路進行虛擬記憶體置換,但這樣作會大大地打擊網路的效能,若非絕對必要,千萬別這麼作。

- 對檔案伺服器的資料穩定性要求很高

基本上這個限制並非針對「無磁碟」系統,只要是存放重要資料的檔案伺服器都要有高穩定性,並且應該定期備份、時常檢查資料完整性。我們常常會在重要的檔案伺服器上安裝容錯 RAID 和磁帶機;即使 RAID 裡的成員磁碟有所損壞,也不會影響資料的完整性,而定期也要利用像磁帶機 (Terabyte 等級的離線儲存媒體) 這種大容量設備進行資料備份。

因為無磁碟系統的伺服器上存放了所有節點的設定資料,一旦這些資料出了問題,影響到的是所有的系統,而不是一個或兩個。所以這些資料的重要性,就比單單存在節點的本機碟碟上的時候大了很多。

- 個別節點不容易特化設定

因為節點所有的資料都存在伺服器上,通常會和其它節點共享許多程式檔案,甚至是設定檔。如果我們想特性化某一個節點的設定或者是應用程式,就必須另外為它準備一份檔案組。這會比較麻煩,而且造成管理上的紊亂。

這個問題是無磁碟系統的特性,所有的資料擺在一起可以方便統一設定,相對地特化設定就比較難了。不過,實務上我們還是可以用一些組織檔案系統的技巧來克服這個問題,只是比較需要花點心思。

就硬體來講,無磁碟系統雖然會增加伺服器上的儲存設備成本,但可以減少在各節點上安裝硬碟的成本。如果節點的數量不是很多 (在數十台的尺度內),那麼區域網路方面通常也不需要昇級成 Gigabit Ethernet (不過這部份的成本現在很低了)。因此將現有的 Linux 環境無磁碟化並不會多花多少錢,甚至很有可能省錢。

無磁碟的 Linux (這裡用的是 Debian GNU/Linux) 在許多方面減輕了大量的管理負擔:統一的辦公室環境、教室環境和叢集計算環境。只要是節點組態統一的應用環境,都可以利用無磁碟系統的管理優勢,大幅簡化節點電腦系統的管理工作。雖然建立系統需要學習不少設定技巧和伺服器組態,最後的結果會是值得的。
Posted by yungyuc at 17:49, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1
© hover year to navigate month: powered by django