天天看點

<<Information Store and Management>>讀書筆記 之七

2.5 Logical Components of the Host

==========================

宿主的邏輯元件包括用于使用者資料通訊的軟體應用程式和協定, 以及實體元件. 下面是宿主的邏輯元件:

■■作業系統

■■裝置驅動

■■卷管理器-Volume manager

■■檔案系統-File system

■■應用程式-Application

Logical Volume Manager(LVM)的進化允許了檔案系統容量的動态擴充, 還有高效的存儲管理. LVM是運作在宿主計算機上的軟體, 他管理着邏輯的和實體的存儲. LVM是結語檔案系統和實體磁盤間的可選的中間層. 它可以聚集許多小硬碟來形成一個大的虛拟硬碟, 或者将一個大容量的硬碟分區為虛拟的, 小容量的磁盤, 這些小容量的磁盤被呈現給應用程式. LVM提供了優化的存儲通路并簡化了存儲資源的管理. 他隐藏了實體磁盤的細節, 還隐藏了磁盤資料位置的資訊; 他使得管理者不修改硬體就可以修改存儲配置設定, 甚至在應用程式還在運作中的時候也可以修改存儲配置設定.

<<Information Store and Management>>讀書筆記 之七

基本的LVM元件包括實體卷(physical volume), volume group, 和logic volumes. 在LVM的專門名詞中, 每個連接配接着宿主的實體磁盤都是一個physical volume(PV). LVM轉換實體卷的提供的實體存儲為一個存儲的邏輯視圖, 之後它就可以被作業系統和應用程式使用了. volume group是通過聚集一個或多個physical volume而建構的. 每一個physical volume都被配置設定給了一個獨一無二的physical volume identifier(PVID). Physical volume可以在volume group中動态地添加或移除. 它們不能在不同的volume group間共享. 整個physical volume就是volume group的一部分. 在volume group被建立出來的時候, 每個physical volume都被分區為等大小的叫做physical extents的資料塊.

Logical volume是在一個給定的volume group上建立出來的. logical volume可以被看作是一個虛拟的硬碟分區, 整個volume group本身可以被看作是一塊硬碟. 一個volume group可以有許多個logical volume. logical volume的大小是在多個physical extent的基礎上的. logical volume在作業系統看起來是一個實體裝置. 一個logical volume可以由多個不連續的實體分區組成, 并且可以跨多個physical volume. 可以在一個logical volume上建立出一個檔案系統, logical volume可以為了應用程式更優的性能而配置, 也可以被做為鏡像來增強資料的可用性(availability).

2.5.4 File System

-----------------------------

一個檔案就是相關記錄或資料的集合, 該集合作為一個機關而存儲, 并且擁有一個名字. 一個檔案系統就是檔案的層級結構. 檔案系統使得通路存儲在磁盤中, 磁盤分區中, 或邏輯分卷中的檔案比較容易通路. 檔案系統需要基于宿主的邏輯結構和控制檔案通路的軟體. 它提供給使用者建立, 修改, 删除, 和通路檔案的功能. 通路磁盤上的檔案是被檔案所有者給出的權限來控制的, 該權限也由檔案系統儲存管理.

檔案系統通過使用檔案夾來按照結構化的分層方式組織資料, 檔案夾也就是指向多個檔案的指針的容器. 所有的檔案系統都維護有一個檔案夾, 子檔案夾, 和檔案的指針地圖. 有些常見的檔案系統如下: 

■■ FAT 32 (File Allocation Table) for Microsoft Windows

■■ NT File System (NTFS) for Microsoft Windows

■■ UNIX File System (UFS) for UNIX

■■ Extended File System (EXT2/3) for Linux

除了檔案和檔案夾, 檔案系統還包括很多其他相關的記錄, 它們被統稱為metadata(中繼資料). 比如說, 在UNIX環境中, metadata由superblock, inodes, 空閑的和正在使用的data block的清單. 檔案系統的中繼資料必須有一緻性, 這樣檔案系統才能被認為是健康的. superblock包括檔案系統的重要資訊, 比如說檔案系統類型, 建立和修改日期, 大小, 布局, 可用資源的數目(比如說空閑的block, inode等), 還有檔案系統容量的标志位. Inode與每一個檔案和檔案夾相關, 并包含檔案長度, 所有者, 通路權限, 最後的通路和修改時間, 連結的數目, 尋找資料存儲在實體盤的什麼位置的位址資訊.

<<Information Store and Management>>讀書筆記 之七

檔案系統的block是實體磁盤空間配置設定資料的最小容器. 每個檔案系統的block都是實體磁盤上的一片連續區域. 檔案系統的block大小在它建立的時候就是固定的了. 檔案系統大小取決于block的大小和存儲的block的總數. 一個檔案可以跨多個block, 因為多數檔案都比檔案系統預定義的block的尺寸要大. 當新的block被添加或删除的時候, 檔案系統的blocks是可以不連續的. 随着時間的流逝, 當檔案變得越來越大, 檔案系統就會變的越來越碎片化. 圖2-12展示了通過LVM映射使用者檔案到磁盤子系統的過程.

1. 檔案是由使用者和應用程式建立和管理的.

2. 這些檔案存儲在檔案系統中.

3. 檔案系統之後被映射為資料機關, 即文集系統的block.

4. 檔案系統的block被映射到邏輯擴充上.

5. 之後, 這些依次被映射到磁盤實體擴充上, 要麼是通過作業系統, 要麼是通過LVM.

6. 這些實體擴充被映射到磁盤存儲系統上.

如果沒有LVM, 那麼就沒有邏輯擴充. 沒有LVM, 檔案系統的block是直接映射到磁盤扇區上的. 檔案系統的樹結構起始與根目錄. 根目錄有一些子目錄. 檔案系統使用前需要被加載的.

檔案系統可以是日志檔案系統, 可以是一個非日志檔案系統. 非日志檔案系統有可能會丢失檔案的潛在風險, 因為他們會使用許多分開的寫操作來更新他們的資料和中繼資料. 如果系統在寫操作時崩潰, 資料可能會丢失或損壞.

當系統重新開機的時候, 檔案系統會通過檢驗和修複中繼資料結構來試圖更新它們. 這個操作在大檔案系統上會花費很長時間, 如果沒有如走的資訊來重建需要的結構或者是以前的結構, 檔案就會被錯誤放置或丢失, 結果就是檔案系統的崩潰.

日志檔案系統使用叫做log或journal的分開區域. 這日志會包括所有的将要寫入的資料(physical journal), 或者可以僅包括要更新的metadata(logical journal). 在修改寫入到檔案系統之前, 他們會先寫入到這個分開的區域. 一旦日志被更新, 檔案系統中的操作就可以被執行了. 如果系統在操作期間崩潰了, 日志中的資訊足夠"重放"操作, 并完成這個操作. 日志記錄的結果就是檔案系統比較快速, 因為他僅僅關注大的檔案系統中活躍的,最近剛被寫入的部分.  另外, 由于将要執行的操作被存儲了, 檔案丢失的風險也降低了.

日志檔案系統的缺點是他們比其他的檔案系統要慢一點. 這緩慢是每次檔案系統變化的時候不得不執行額外的記錄日志的操作引起的. 然而, 系統自檢的時間縮短了, 系統完整性的的提高彌補了這個缺陷. 今天幾乎所有的檔案系統的實作都是日志類型的.

專門的檔案系統可以被安裝來在網絡上分享和管理大量的檔案. 這些檔案伺服器支援多種檔案系統, 他們使用針對作業系統的檔案分享協定 - 比如說NFS, 和CIFS. 這些協定在第七章詳細介紹.

2.5.5 Application

------------------------

應用程式是為計算提供邏輯的計算機程式. 他提供了使用者和一台或多台宿主計算機之間的接口. 傳統的使用資料庫的商業應用程式有三層結構- 應用程式使用者接口形成了前段層, 計算機邏輯(應用程式本身)形成了中間層, 底下的資料庫形成了背景層. 應用程式發送請求給底層的作業系統來在存儲系統上執行讀寫操作. 應用程式可以在資料庫之上, 一次使用作業系統服務來對存儲系統執行讀寫操作. 這些讀寫操作使得前段和背景的層次間的事務(transaction)成為可能.

資料通路可以被分類為block-level的或file-level的兩類, 取決于應用程式是使用logic block address還是使用檔案名以及檔案資訊辨別來從磁盤進行讀寫.