前言
上期為各位介紹的磁區管理技術,是一個高效能、有彈性、可延展的電子商務資料庫基礎之一,具備初期與後續硬體投資成本較低及主機架構的磁區可補充RAID磁碟子系統等優點。除了磁區管理技術外,另一個儲存管理的重要技術則為檔案系統,它可強化資料庫表格與索引的效能、彈性與管理,本期將為各位進行深入的探討。
檔案系統功能的充分發揮
檔案系統[File Syetem]雖可強化資料庫表格[Table]與索引[Index]的效能、彈性與管理,但當作資料庫使用時的最大限制就是:
1.脆弱的永續性保證
大部分的檔案系統在資料實際寫入磁碟之前,就發出I/O完成訊號給應用軟體。資料庫管理系統因而無法保證資料的永續性,甚至於資料完整性。
2.缺乏效率的傳輸特性
大部份的檔案系統會在寫入磁碟之前,先將資料移動到核心暫存區的快取記憶體,而產生極高的處理時間。
3.不適切的分享方式
大部份的檔案系統會要求應用軟體寫入檔案至核心。對資料庫管理系統而言,這是多餘的步驟,會降低效能。
但好的檔案系統基礎架構就沒有這些限制,而且,還提供額外的優勢,可將檔案當作電子商務資料庫表格使用。以下介紹幾項具優勢的檔案系統功能。
延伸基礎[Extend-Based]的檔案系統
延伸基礎的檔案系統會以各種長度來分配儲存空間,而非以UNIX傳統的8Kbyte固定長度。每個延伸都是一群依序任意編碼的磁碟區塊,可以精確地運用起始區塊號碼與區塊數而描述。延伸描述程式內含在磁碟中的檔案描述程式中[內部節點, inodes]。因為每個延伸都很大,單一內部節點可以將極大的檔案對應至磁區的區塊上,且費用極低。請參考(圖一)。
對資料庫管理系統而言,延伸的主要好處就是可以獲得更大的連續儲存區域,而支出較少的結構損失。大規模連續儲存區域可為資料庫管理系統提供下列利益:
1.更小的儲存描述程式架構
因為每個描述程式可以對應更多的區域,而且對應一個檔案僅需更少的描述程式。更少的描述程式意指在應用軟體要求的檔案,與I/O要求所指定的磁碟或磁區定位之間的更快速轉譯。
2.更有效率的I/O
更大的連續儲存區域可提供更大規模的I/O使用,進行連續的資料庫表格掃瞄。這樣可減少I/O處理費用和時間,而無需等待磁碟轉動到起點以供進行下一個資料庫傳輸。甚至,大規模的連續儲存區域還可以減少磁碟分裂[disk fragmentation],磁碟分裂就是個別資料物件被分割儲存於磁碟的多個不連續位置。磁碟分裂會造成較差的全面I/O效率,因為某些應用軟體要求會被分割成多重磁碟要求,以對應非連續的資料要求。
3.積極的連續I/O政策
連續放置的資料可在連續資料庫表格掃描時優先讀取,可減少存取延遲。並且,若資料連續放置,檔案系統還可以將某些應用軟體寫入要求整合為一[有時稱為I/O要求叢集],減少處理時間並增加I/O效率。
4.更大規模的檔案
延伸基礎的儲存配置可支援更大的檔案。
預先分派以提高效率和應用軟體的卓越性
對於非資料庫的應用軟體,檔案新增、更新和刪除是非常頻繁的。然而相對地,資料庫是靜態的庫表格架構。資料庫表格空間之新增、更新與刪除是非常少見的。
檔案系統若能容許在新增檔案時保留儲存空間,這樣對電子商務資料庫有兩大優點:
1.最佳化的資料規劃
資料庫管理者建立可使用空間保留的全新資料庫,為已知的要求建立最佳的資料庫表格空間規劃。
空間分配失敗率極低
檔案系統會在配置新檔案空間之前,進行事先的空間保留。若既有的資料表空間已經保留以備未來成長之需,交易與批次工作將不會因為可避免的空間分配不當而失敗。
迅速恢復,強化系統可用性
即使是做了最好準備的電子商務系統,仍然可能出現問題。應用軟體、硬體零組件或操作的程序都可能導致系統故障,因此必須要有應變的恢復計劃。而恢復計劃最重要的就是儘快讓應用軟體重新啟動。
當忙碌的系統故障時,其檔案系統結構的完整性就令人懷疑了。可能檔案已經被新增、更新或刪除了,而後續檔案系統的資料卻仍未更新。在不當的時機發生系統故障,可能會引起檔案或儲存空間的喪失,甚至一個區塊重複配置數個檔案。
通常確認檔案系統資料完整性的方法,就是執行程式檢查與修理檔案系統架構的完整性,然後才加以使用。在UNIX系統,這個程式通常叫fsck [檔案系統檢查]。Windows作業系統也具備相同的能力。
fsck程式與其他類似的程式會確認檔案系統的結構,並確定沒有磁碟區塊喪失或重複配置。可能會恢復部份的資料變更,導致遺失一些最近的更新,但檔案系統在架構上仍然完整無缺。而在電子商務上使用fsck的問題在於,大規模檔案系統必需花費較長時間執行[估計每一gigabyte的資料約需2-5分鐘]。而且恢復時間可能需要很久,在fsck完成之前沒有一個軟體可以開始執行[包括資料庫管理系統],此舉將降低系統的可用性。
當系統故障恢復之後,檔案系統會讀取更動記錄,然後確保全部資料更新的一致性。由於與大型檔案系統中的全體資料數量相比,不完全資料更新的數量實在微乎其微,重播更動記錄的速度一定比執行完整的fsck更快。這樣可以讓檔案系統更快檢查完成並可使用,使資料庫管理系統更早恢復資料庫,強化了系統的可用性。
線上管理,時勢所趨
因為電子商務仍在萌芽,各企業的電子商務資訊系統仍將繼續成長和改變。成長與改變兩者都必須將大量的資料從某位置移動到其他位置:
- ● 資料庫的成長超過儲存容量,而被迫要擴大或更換;
- ● 資料庫必需形成整塊磁區以改善效能;
- ● 資料庫必需從某電腦上或實際儲存位置移動到其他電腦或儲存位置;
重整、擴大與重新定位資料的需求對電子商務非常重要,可提高資料的可用性。
線上重整
在應用軟體執行時,若檔案被新增、更新、截斷或刪除,隨著時間過去,磁區會變成殘破不全的片段。而在殘破的磁區,如(圖二)右邊所示,檔案和自由空間混雜在一起,可供新檔案運用的自由空間會被分割得零零落落,導致即使在磁區中仍有許多空間,但要求大型連續空間的檔案新增要求仍會失敗。此時非連續配置的要求會成功,但存取片斷檔案需花費許多時間,導致效能低落。
檔案系統需能重整[defragement]磁區來加以補救。檔案系統可以將檔案從一組區塊移動到另一組區塊,並更新內容以反映檔案的新位置。這對應用軟體是透通的,可以在移動前與後存取檔案。若同一磁區的所有檔案是連續的,則該磁區的自由空間會更穩定,也就是說這個磁區已重整了,如圖二左邊所示。
移動未使用的檔案很容易,但是移動應用軟體正在使用的檔案就是難題了。例如,要移動100個區塊的檔案,當已經移動50個區塊之後,某應用軟體使用舊的資料來更改第一區塊,則資料更新時該區塊可能被遺漏。
(圖三)說明檔案系統如何在舊的位置與新的位置,反映移動檔案時的應用軟體更新。若應用軟體更新的區塊已經複製,檔案系統會完整地複製更新至新舊位置。如此一來,即使資料庫仍在使用中,仍可讓資料庫表格與其他檔案就定位。
移動資料庫容納檔案
資料庫表格空間、資料表與索引通常是相對靜態的,在資料庫建置和重新規劃之前就已經被定義。更改結構則是少數的例外。因此,雖然電子商務資料庫儲存裝置偶而需要重整,但絕非線上檔案重新配置功能的主要用途。
資料庫管理者之所以在資料庫表格空間被使用中仍加以移動,以滿足延伸、重新定位或重新架構的需求,這是因為電子商務環境的快速成長所導致。例如:
- ● 儲存政策改變。例如:當資料庫表格的重要性與更新頻率增加時需從單一磁碟或RAID 5磁區改變成鏡射磁區時,,則可在資料庫表格使用當中即予變更;
- ● 資料庫表格成長至空間即將用完,而需移動到有更大容量的裝置上;
- ● 從預期將發生故障的儲存裝置上移出檔案,例如透過VERITAS LookOut預言式故障分析技術;
在使用當中移動檔案,需要高度管理能力,以保證電子商務運算環境的成功。
線上擴充
在電子商務移動使用中檔案最常見的原因就是擴充線上容量。隨著電子商務益趨成熟:
- ● 產品組合和服務會增加;
- ● 會獲得更多客戶;
- ● 交易記錄會堆積如山;
- ● 線上應用軟體會大幅擴充;
這些因素都需要讓更多資訊保持上線,也就是必須擴充儲存容量。Oracle可使空間以自動或由資料庫管理者手動進行線上擴充。原始分割與某些平常的檔案系統可以允許擴充,但僅可達分割或檔案系統的容量為止。而VERITAS的基礎技術,則可以透過加裝儲存容量而使線上磁區擴充,允許使用新增之容量來擴充檔案系統,當然這也是在線上進行的。
或者,可能需要在使用中將部分的資料庫表格移動到其他磁區,例如為了細分以增強平行處理能力。
快照[Snapshot]
電子商務永不停頓的可用性需求與定期備份的傳統方式大相逕庭。除非恢復的資料庫能夠維持最新資料,否則資料備份就沒有價值可言。因此當資料庫沒有交易時,是最佳的資料備份作業時機。然而由於線上資料隨時都可能更新,因此難以保證在線上備份的資料庫是否可以獲得永不停頓的資料存取效果。
有一個方法可以達成即時備份的要求,就是在備份期間停用資料庫。這種方式的備份作業通常稱為冷資料庫備份[cold database backup]。因為備份期間,資料庫是沒有活動的,這是最快速的完整資料庫備份方法。執行冷資料庫備份時,系統管理者必須找出資料庫可以不接受使用的備份時間,備份時間可以在深夜或週末。然而對電子商務而言,在全天24小時的營業時間中,任何資料都必須隨時可得。因此,冷資料庫備份無法滿足電子商務可用性需求。甚至隨著業務成長,電子商務的線上資料量還會增加,備份時間也會成正比增長,但是可用的備份時間卻仍維持不變。冷資料庫備份作業越來越難執行了。
快照是檔案系統本身即時的狀態映像。除了在建立當時,快照對資料庫管理系統是完整的。建立快照的檔案系統就稱為有快照的檔案系統。快照啟動後,就可以像平常一樣讓應用軟體更新了。此一建立的快照檔案對應用軟體而言,是一個稱為快照的唯讀檔案系統。
建立快照需要一些時間。檔案系統運用未配置的空間創造一個修正區塊對應區[modified block map],用來記錄有快照檔案系統的變更。同時也會安排一些空間供變更區塊使用,記錄先前的內容。一旦架構建立後,兩個快照檔案系統都可供應用軟體使用了。
快照是非常好用的備份方式,不僅呈現檔案系統的即時印象,也呈現資料庫的靜態狀況,因此絕無部份完成的交易,所有已完成的交易都會被反映到磁碟[而非僅在快取]。
快照的效能衝擊
由於快照可將備份時間從數小時縮短到數秒鐘,當然對應用軟體有很大的影響。更新有快照的檔案系統至少需要比正常更新多三倍的I/O活動,因為在寫入更新之前,被更新的區塊必需被讀取和複製到快照變更區塊。經驗顯示,當快照發生影響時,運用Oracle資料庫的線上交易處理應用軟體會降低15%效能。然而對於同步備份而維持永不停頓的資料庫可用性而言,這實在是極小的代價。
基礎總結
電子商務資料庫的需求不外乎三點,即可靠性、效能、具延展性的成長。在這兩期的基礎篇中說明基礎檔案系統與磁區管理技術如何協助您滿足這些需求。例如以源自於磁區管理軟體RAID和鏡射技術,當磁碟與其他硬體元件故障時,仍能維持線上資料的完整恢復,以達到可靠性要求。在運作當中擴充磁區、檔案系統與資料庫本身的能力,也可達成具延展性的成長。
基礎技術提供了電子商務資料庫永不間斷可用性所需的大部份儲存管理能力。以此為基礎,本白皮書後續章節將討論其他的關鍵技術,包括複製、叢集架構及資料管理等,帶領您完成全面資料儲存管理的理想。
(本白皮書系列由精業公司主機週邊事業部提供,精業公司為VERITAS台灣區總代理)