linus

linus

Linus Torvalds,1969年12月28日出生於芬蘭的赫爾辛基,Linux核心的創作者。當Linus十歲時,他的祖父,赫爾辛基大學的一位統計教授,購買了一台Commodore VIC-20計算機。Linus幫助他祖父把數據輸入到他的可程式計算器里,做這些僅僅是為了好玩,他還通過閱讀計算機里的指令集來自學一些簡單的BASIC程式。當他成為赫爾辛基大學的計算機科學系的學生的時候,Linus Torvalds 已經是一位成功的程式設計師了。在赫爾辛基大學當了10年的學生和研究員之後,Linus Torvalds接受了Transmeta的一個工作,這家矽谷的新公司以它的徵召天才和它的 Crusoe 晶片聞名。

基本信息

人物經歷

早年經歷

Linus Torvalds,Linux核心的創作者,於1969 年12月28 日出生在芬蘭的赫爾辛基。“有些人生來就具有統率百萬人的領袖風範;另一些人則是為寫出顛復世界的軟體而生。唯一一個能同時做到這兩者的人,就是托瓦茲。”美國《時代》周刊對Linux之父李納斯·托瓦茲(Linus Torvalds)給出了極高的評價。甚至,在《時代》周刊根據讀者投票評選出的二十世紀100位最重要人物中,李納斯居然排到了第15位,而從20世紀的最後幾年就開始霸占全球首富稱號的蓋茨不過才是第17位。當Linus十歲時,他的祖父,赫爾辛基大學的一位統計教授,購買了一台Commodore VIC-20計算機。Linus幫助他祖父把數據輸入到他的可程式計算器里,做這些僅僅是為了好玩,他還通過閱讀計算機里的指令集來自學一些簡單的BASIC程式。當他成為赫爾辛基大學的計算機科學系的學生的時候,Linus Torvalds 已經是一位成功的程式設計師了。

Linux的最初研發

1991年4月,芬蘭赫爾辛基大學學生Torvalds開始對 Minix(一個Andrew S. Tanenbaum開發的以教學目的的類似Unix的作業系統)感興趣起來,但不滿意Minix這個教學用的作業系統。出於愛好,他根據可在低檔機上使用的MINIX設計了一個系統核心Linux 0.01,但沒有使用任何MINIX或UNIX的原始碼。他通過USENET(就是新聞組)宣布這是一個免費的系統,主要在x86電腦上使用,希望大家一起來將它完善,並將原始碼放到了芬蘭的FTP站點上代人免費下載。本來他想把這個系統稱為freax,意思是自由( free) 和奇異(freak) 的結合字,並且附上了"X"這個常用的字母,以配合所謂的Unix-like的系統。可是FTP的工作人員認為這是Linus的MINIX,嫌原來的命名“Freax”的名稱不好聽,就用Linux這個子目錄來存放,於是它就成了“Linux”。這時的Linux只有核心程式,僅有10000行代碼,仍必須執行於Minix作業系統之上,並且必須使用硬碟開機,還不能稱做是完整的系統;隨後在10月份第二個版本(0.02版)就發布了,同時這位芬蘭赫爾辛基的大學生在comp.os.minix上發布一則信息:

Hello everybody out there using minix-

I'm doing a (free) operation system (just a hobby,

won't be big and professional like gnu) for 386(486) AT clones.

使用minix的朋友大家好-我正在做一個386(486)AT兼容機的(免費的) 作業系統(僅僅是出於個人的愛好,不會像GNU那樣做大做專業)。

這就是後來被人們稱為 Linux。

成功運用於網際網路

Linus Torvalds把他的作業系統的成功歸功於網際網路 和Richard Stallman的GNU項目。Torvalds 和他的聯合開發者利用了系統組分由自由軟體基金會開發的成員開發 為GNU 項目。Linux 的開發背後的開放資源哲學,與作業系統的成功結合,使得Linus Torvalds 成為有爭議的"崇拜偶像。"

和Windows及其它有專利權的作業系統不同,Linux 仍然公開地開放原始碼和並得到不斷的擴展。任何人可以免費的使用它,只要他們做的任何改進都不是受著作權保護並且可以免費地保留利用。當前,據估計現在只2% Linux 代碼由Linus Torvalds自己寫的,雖然他仍然擁有Linux 核心(作業系統的核心部分) 並且保留了選擇新代碼和需要合併的新方法的最終裁定權。

在赫爾辛基大學當了10年的學生和研究員之後,Linus Torvalds接受了Transmeta的一個工作,這家矽谷的新公司以它的徵召天才和它的 Crusoe 晶片聞名。

十大名言

1. “Software is like sex: it's better when it's free.”

軟體就像性,免費的比花錢的好得多.

2. “Microsoft isn't evil, they just make really crappy operating systems.”

微軟並不是魔鬼,只是它的作業系統實在太蹩腳了

3. “My name is Linus, and I am your God.”

我是Linus,我就是你的神. Hia Hia Hia

4. “See, you not only have to be a good coder to create a system like Linux, you have to be a sneaky bastard too.”

要想能夠創造Linux這樣得作業系統不只是需要良好得程式設計師,還得是一個偷偷摸摸的壞蛋。

5. “The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.”

Linux的哲學就是“在危險面前放聲大笑”,呵呵,不是這句,應該是“一切靠自己,自力更生”才對。

6. “Some people have told me they don't think a fat penguin really embodies the grace of Linux, which just tells me they have never seen a angry penguin charging at them in excess of 100 mph.”

很多朋友和我說那隻胖企鵝不配代表Linux作業系統,因為他們從來沒見過一隻憤怒的企鵝以超過100邁的速度向他們發起攻擊

7. “Intelligence is the ability to avoid doing work, yet getting the work done.”

所謂智慧,就是這樣一種能力:不動手幹活,但是把事給辦了。 (怎樣最大限度發揮機器本身的效能)

8. “When you say, ‘I wrote a program that crashed Windows,’ people just stare at you blankly and say, ‘Hey, I got those with the system, for free.’”

你驕傲的和別人說,嘿,我寫了個能讓Windows崩潰的程式,他們會面無表情地盯著你說“哥們,我裝(Windows)系統的時候就免費帶著了” (吐槽Windows自己都會崩潰)

9. “I don't doubt at all that virtualization is useful in some areas. What I doubt rather strongly is that it will ever have the kind of impact that the people involved in virtualization want it to have.”

我對虛擬化的技術是不是在某些領域有用沒有任何懷疑,我懷疑的是它會不會產生開發它的人們希望它產生的影響。

10. “Now, most of you are probably going to be totally bored out of your minds on Christmas day, and here's the perfect distraction. Test 2.6.15-rc7. All the stores will be closed, and there's really nothing better to do in between meals.”

大家在聖誕期間可能會非常無聊,現在有好辦法了,測試核心2.6.15-rc7版吧,茶餘飯後的好消遣喔

歷程

1991 年,在學習了一套Unix 和 C的課程之後,Torvalds購買了他自己的個人計算機(PC) 。他對計算機的作業系統(MS-DOS)很不滿,並且決定自己寫一個作業系統。Torvalds開始對 Minix,一個Andrew S. Tanenbaum開發的以教學目的的類似Unix的作業系統,感興趣起來,Andrew S. Tanenbaum是一個想教他的學生真正的作業系統的內在工作原理的荷蘭教授。Minix是為在英特爾 8086 微處理器上運行而設計的,並且有可以用於研究的原始碼。Torvalds 決定開發超出Minix標準的一個作業系統。後來被人們稱為 Linux,Linus 'Minix的縮寫。

Linus Torvalds 沒有保留他的計算機編碼的著作權。反而,他在網際網路上公開了他的代碼,並且邀請comp.os.minix 新聞組的成員來幫助他建立他的作業系統。在1991 年8月25 日,Linus Torvalds 宣布了這則著名訊息: 使用minix的朋友大家好-我正在做一個386(486)AT兼容機的(免費的) 作業系統(僅僅是出於個人的愛好,不會像GNU那樣做大做專業)。

Linus Torvalds把他的作業系統的成功歸功於 網際網路 和Richard Stallman的GNU項目。Torvalds 和他的聯合開發者利用了系統組分由自由軟體基金會開發的成員開發 為GNU 項目。Linux 的開發背後的開放資源哲學,與作業系統的成功結合,使得Linus Torvalds 成為有爭議的"崇拜偶象。"

和Windows及其它有專利權的作業系統不同,Linux 仍然公開地開放原始碼和並得到不斷的擴展。任何人可以免費的使用它,只要他們做的任何改進都不是受著作權保護並且可以免費地保留利用。當前,據估計現在只2% Linux 代碼由Linus Torvalds自己寫的,雖然他仍然擁有Linux 核心(作業系統的核心部份) 並且保留了選擇新代碼和需要合併的新方法的最終裁定權。

在赫爾辛基大學當了10年的學生和研究員之後,Linus Torvalds接受了Transmeta的一個工作,這家矽谷的新公司以它的徵召天才和它的 Crusoe 晶片聞名。

Linux對象存儲檔案系統的研究

隨著高性能計算由傳統的主機方式向網路化集群演變,傳統的基於主機的存儲架構已逐漸向網路化存儲發展,計算和存儲分離的趨勢越來越明顯。針對 SAN 和 NAS 的不足,國際上已開展針對 Linux 集群的新型檔案系統――對象存儲檔案系統的研究,本文重點論述了存儲對象檔案系統的架構、技術特點,並針對Lustre 對象存儲檔案系統進行了初步測試,結果表明對象存儲檔案系統在可擴展性、性能、易用性等方面都有顯著提高,隨著網路化存儲技術的不斷成熟,對象存儲檔案系統將成為重要的發展方向。

一、引言

高性能計算已由傳統的主機方式逐漸向集群方式演變,如TOP500中,1998年只有2台系統是集群方式,而到2003年已有208台為集群系統。隨著高性能計算體系結構的發展變化,傳統的基於主機的存儲架構已成為新的瓶頸,不能滿足集群系統的需求。集群的存儲系統必須有效解決兩個主要問題:(1)提供共享訪問數據,便於集群應用程式的編寫和存儲的負載均衡;(2)提供高性能的存儲,在I/O級和數據吞吐率方面能滿足成百上千台規模的Linux集群伺服器聚合訪問的需求。目前,網路化存儲已成為解決集群系統高性能存儲的有效技術途徑。

國際上主要有兩類網路化存儲架構,它們是通過命令集來區分的。第一類是SAN(Storage Area Network)結構,它採用SCSI 塊I/O的命令集,通過在磁碟或FC(Fiber Channel)級的數據訪問提供高性能的隨機I/O和數據吞吐率,它具有高頻寬、低延遲的優勢,在高性能計算中占有一席之地,如SGI的CXFS檔案系統就是基於SAN實現高性能檔案存儲的,但是由於SAN系統的價格較高,且可擴展性較差,已不能滿足成千上萬個CPU規模的系統。第二類是NAS(Network Attached Storage)結構,它採用NFS或CIFS命令集訪問數據,以檔案為傳輸協定,通過TCP/IP實現網路化存儲,可擴展性好、價格便宜、用戶易管理,如目前在集群計算中套用較多的NFS檔案系統,但由於NAS的協定開銷高、頻寬低、延遲大,不利於在高性能集群中套用。

針對Linux集群對存儲系統高性能和數據共享的需求,國外已開始研究全新的存儲架構和新型檔案系統,希望能有效結合SAN和NAS系統的優點,支持直接訪問磁碟以提高性能,通過共享的檔案和元數據以簡化管理,目前對象存儲檔案系統已成為Linux集群系統高性能檔案系統的研究熱點,如Cluster File Systems公司的Lustre、Panasas公司的ActiveScale檔案系統等。Lustre檔案系統採用基於對象存儲技術,它來源於卡耐基梅隆大學的Coda項目研究工作,2003年12月發布了Lustre 1.0版,預計在2005年將發布2.0版。Lustre在美國能源部(U.S.Department of Energy:DOE)、Lawrence Livermore 國家實驗室,Los Alamos國家實驗室,Sandia 國家實驗室,Pacific Northwest國家實驗室的高性能計算系統中已得到了初步的套用,IBM正在研製的Blue Gene系統也將採用Lustre檔案系統實現其高性能存儲。ActiveScale檔案系統技術來源於卡耐基梅隆大學的Dr. Garth Gibson,最早是由DARPA支持的NASD(Network Attached Secure Disks)項目,目前已是業界比較有影響力的對象存儲檔案系統,榮獲了ComputerWorld 2004年創新技術獎。

二、對象存儲檔案系統

2.1 對象存儲檔案系統架構

對象存儲檔案系統的核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,並且基於對象存儲設備(Object-based Storage Device,OSD)構建存儲系統,每個對象存儲設備具有一定的智慧型,能夠自動管理其上的數據分布,對象存儲檔案系統通常有以下幾部分組成。

1、對象

對象是系統中數據存儲的基本單位,一個對象實際上就是檔案的數據和一組屬性的組合,這些屬性可以定義基於檔案的RAID參數、數據分布和服務質量等,而傳統的存儲系統中用檔案或塊作為基本的存儲單位,在塊存儲系統中還需要始終追蹤系統中每個塊的屬性,對象通過與存儲系統通信維護自己的屬性。在存儲設備中,所有對象都有一個對象標識,通過對象標識OSD命令訪問該對象。通常有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。

2、對象存儲設備

對象存儲設備具有一定的智慧型,它有自己的CPU、記憶體、網路和磁碟系統,目前國際上通常採用刀片式結構實現對象存儲設備。OSD提供三個主要功能:

(1) 數據存儲。OSD管理對象數據,並將它們放置在標準的磁碟系統上,OSD不提供塊接口訪問方式,Client請求數據時用對象ID、偏移進行數據讀寫。

(2) 智慧型分布。OSD用其自身的CPU和記憶體最佳化數據分布,並支持數據的預取。由於OSD可以智慧型地支持對象的預取,從而可以最佳化磁碟的性能。

(3) 每個對象元數據的管理。OSD管理存儲在其上對象的元數據,該元數據與傳統的inode元數據相似,通常包括對象的數據塊和對象的長度。而在傳統的NAS系統中,這些元數據是由檔案伺服器維護的,對象存儲架構將系統中主要的元數據管理工作由OSD來完成,降低了Client的開銷。

3、元數據伺服器(Metadata Server,MDS)

MDS控制Client與OSD對象的互動,主要提供以下幾個功能:

(1) 對象存儲訪問。MDS構造、管理描述每個檔案分布的視圖,允許Client直接訪問對象。MDS為Client提供訪問該檔案所含對象的能力,OSD在接收到每個請求時將先驗證該能力,然後才可以訪問。

(2) 檔案和目錄訪問管理。MDS在存儲系統上構建一個檔案結構,包括限額控制、目錄和檔案的創建和刪除、訪問控制等。

(3) Client Cache一致性。為了提高Client性能,在對象存儲檔案系統設計時通常支持Client方的Cache。由於引入Client方的Cache,帶來了Cache一致性問題,MDS支持基於Client的檔案Cache,當Cache的檔案發生改變時,將通知Client刷新Cache,從而防止Cache不一致引發的問題。

4、對象存儲檔案系統的Client

為了有效支持Client支持訪問OSD上的對象,需要在計算結點實現對象存儲檔案系統的Client,通常提供POSIX檔案系統接口,允許應用程式像執行標準的檔案系統操作一樣。

2.2 對象存儲檔案系統的關鍵技術

1、分布元數據傳統的存儲結構元數據伺服器通常提供兩個主要功能。(1)為計算結點提供一個存儲數據的邏輯視圖(Virtual File System,VFS層),檔案名稱列表及目錄結構。(2)組織物理存儲介質的數據分布(inode層)。對象存儲結構將存儲數據的邏輯視圖與物理視圖分開,並將負載分布,避免元數據伺服器引起的瓶頸(如NAS系統)。元數據的VFS部分通常是元數據伺服器的10%的負載,剩下的90%工作(inode部分)是在存儲介質塊的數據物理分布上完成的。在對象存儲結構,inode工作分布到每個智慧型化的OSD,每個OSD負責管理數據分布和檢索,這樣90%的元數據管理工作分布到智慧型的存儲設備,從而提高了系統元數據管理的性能。另外,分布的元數據管理,在增加更多的OSD到系統中時,可以同時增加元數據的性能和系統存儲容量。

2、並發數據訪問對象存儲體系結構定義了一個新的、更加智慧型化的磁碟接口OSD。OSD是與網路連線的設備,它自身包含存儲介質,如磁碟或磁帶,並具有足夠的智慧型可以管理本地存儲的數據。計算結點直接與OSD通信,訪問它存儲的數據,由於OSD具有智慧型,因此不需要檔案伺服器的介入。如果將檔案系統的數據分布在多個OSD上,則聚合I/O速率和數據吞吐率將線性增長,對絕大多數Linux集群套用來說,持續的I/O聚合頻寬和吞吐率對較多數目的計算結點是非常重要的。對象存儲結構提供的性能是目前其它存儲結構難以達到的,如ActiveScale對象存儲檔案系統的頻寬可以達到10GB/s。

2.3 Lustre對象存儲檔案系統

Lustre對象存儲檔案系統就是由客戶端(client)、存儲伺服器(OST,Object Storage Target)和元數據伺服器(MDS)三個主要部分組成。Lustre的客戶端運行Lustre檔案系統,它和OST進行檔案數據I/O的互動,和MDS進行命名空間操作的互動。為了提高Lustre檔案系統的性能,通常Client、OST和MDS是分離,當然這些子系統也可以運行在同一個系統中。其三個主要部分如圖1所示.

圖1 Lustre檔案系統的組成

linuslinus

Lustre是一個透明的全局檔案系統,客戶端可以透明地訪問集群檔案系統中的數據,而無需知道這些數據的實際存儲位置。客戶端通過網路讀取伺服器上的數據,存儲伺服器負責實際檔案系統的讀寫操作以及存儲設備的連線,元數據伺服器負責檔案系統目錄結構、檔案許可權和檔案的擴展屬性以及維護整個檔案系統的數據一致性和回響客戶端的請求。 Lustre把檔案當作由元數據伺服器定位的對象,元數據伺服器指導實際的檔案I/O請求到存儲伺服器,存儲伺服器管理在基於對象的磁碟組上的物理存儲。由於採用元數據和存儲數據相分離的技術,可以充分分離計算和存儲資源,使得客戶端計算機可以專注於用戶和應用程式的請求;存儲伺服器和元數據伺服器專注於讀、傳輸和寫數據。存儲伺服器端的數據備份和存儲配置以及存儲伺服器擴充等操作不會影響到客戶端,存儲伺服器和元數據伺服器均不會成為性能瓶頸。

Lustre的全局命名空間為檔案系統的所有客戶端提供了一個有效的全局唯一的目錄樹,並將數據條塊化,再把數據分配到各個存儲伺服器上,提供了比傳統SAN的"塊共享"更為靈活的共享訪問方式。全局目錄樹消除了在客戶端的配置信息,並且在配置信息更新時仍然保持有效。

三、測試和結論

1、Lustre iozone測試

針對對象存儲檔案系統,我們對Lustre檔案系統作了初步測試,具體配置如下:

3台雙至強系統:CPU:1.7GHz,記憶體:1GB,千兆位乙太網

Lustre檔案系統:lustre-1.0.2

Linux版本:RedHat 8

測試程式:iozone

測試結果如下:

塊寫(MB/s/thread) 單執行緒 兩個執行緒

Lustre 1個OST 2個OST 1個OST 2個OST

21.7 50 12.8 24.8

NFS 12 5.8

從以上的測試表明,單一OST的寫頻寬比NFS好,2個OST的擴展性很好,顯示strip的效果,兩個執行緒的聚合頻寬基本等於飽和頻寬,但lustre客戶方的CPU利用率非常高(90%以上),測試系統的規模(三個節點)受限,所以沒有向上擴展OST和client數量。另外,lustre的cache對檔案寫的性能提升比NFS好。通過bonnie++初步測試了lustre的元數據處理能力,和NFS比,檔案創建速度相對快一些,readdir速度慢。

2、lustre小規模測試數據

(檔案寫測試,單位KB/s):

硬體:Dual Xeon1.7,GigE, SCSI Ultra160 軟體:RedHat8,iozone

圖2 2個OST / 1個MDS

linuslinus

圖3 1個OST/1個MDS

linuslinus

圖4 NFS測試

linuslinus

從初步的測試看,lustre的性能和可擴展性都不錯。與傳統的檔案系統相比,對象存儲檔案系統具有以下優勢:

(1)性能。對象存儲體系結構沒有其它共享存儲系統中的元數據管理器瓶頸。NAS系統使用一個集中的檔案伺服器作為元數據管理器,一些SAN檔案系統則採用集中的鎖管理器,最後元數據管理將成為一個瓶頸。對象存儲體系結構類似於SAN,每個結點都可以直接訪問它的存儲設備。對象存儲體系結構對SAN的改進是沒有RAID控制器的瓶頸問題,當計算結點的規模增大時,該優勢將非常明顯,所有結點的總吞吐率最後將受限於存儲系統的規模和網路的性能。存儲對象結點傳送數據到OSD,OSD自動最佳化數據的分布,這樣減少了計算結點的負擔,並允許向多個OSD並行讀寫,最大化單個Client的吞吐率。

(2)可擴展性。將負載分布到多個智慧型的OSD,並用網路和軟體將它們有機結合起來,消除了可擴展問題。一個對象存儲系統有記憶體、處理器、磁碟系統等,允許它們增加其存儲處理能力而與系統其它部分無關。如果對象存儲系統沒有足夠的存儲處理能力,可以增加OSD,確保線性增加性能。

(3)OSD分擔主要的元數據服務任務。元數據管理能力通常是共享存儲系統的瓶頸,所有計算結點和存儲結點都需要訪問它。在對象存儲結構中,元數據服務有兩部分組成:inode元數據,管理介質上的存儲塊分布;檔案元數據,管理檔案系統的檔案層次結構和目錄。對象存儲結構增加了元數據訪問的可擴展,OSD負責自己的inode元數據,增加一個OSD可以增加磁碟容量,並可以增加元數據管理資源。而傳統的NAS伺服器增加更多的磁碟,則性能將更慢。對象存儲系統在容量擴展時,確保持續的吞吐率。

(4)易管理。智慧型化的分布對象存儲結構可以簡化存儲管理任務,可以簡化數據最佳化分布的任務。例如,新增存儲容量可以自動合併到存儲系統中,因為OSD可以接受來自計算結點發出的對象請求。系統管理員不需要創建LUN,不需要重新調整分區,不需要重新平衡邏輯卷,不需要更新檔案伺服器等。RAID塊可自動擴展到新的對象,充分利用新增的OSD。

(5)安全。傳統的存儲系統通常依賴於Client的身份認證和私有的網路確保系統安全。對象存儲結構在每個級別都提供安全功能,主要包括存儲設備的身份認證,計算結點的身份認證,計算結點命令的身份認證,所有命令的完整性檢查,基於IPSec的私有數據和命令等。這些安全級別可以確保用戶使用更高效、更易獲得的網路,如乙太網等。目前panasas已經推出了商業化的對象存儲全局檔案系統ActiveScale,對象存儲正在被重視,Lustre也已經在(ALC、MCR)或將(RedStorm)在多個大規模集群上套用,因而對象存儲檔案系統將成為未來集群存儲的重要發展方向。

四、致謝

本文的測試工作得到了並行檔案系統研究小組的大力支持,特別是周恩強、董勇、林松濤、陳四建為本文提供了詳實的數據,特此表示感謝。

參考資料

Garth Gibson, "Scaling File Service Up and Out", USENIX FAST 2004

"Object Storage Architecture", Panasas White Paper

Peter J. Braam, "The Lustre Storage Architecture", Cluster File System, 2004

David Nagle, Denis Serenyi, Abbie Matthews, "The Panasas ActiveScale Storage Cluster-Delivering Scalable High Bandwidth Storage", SC2004

Philip Schwan, "Lustre: Building a File System for 1,000-node Clusters", OLS 2003

http://www.panasas.com

http://www.clusterfs.com

關於作者

吳慶波, 國防科技大學計算機學院, 通過 [email protected] 可以和他聯繫。

相關詞條

相關搜尋

熱門詞條

聯絡我們