Linux伺服器儲存空間巧妙管理

2021-08-02 21:34:31 字數 5086 閱讀 9707

對於linux使用者而言,在安裝一台linux機器的時候,遇到的問題之一就是給各分割槽估計和分派足夠的硬碟空間。無論對乙個正在為伺服器尋找空間的系統管理員,還是乙個磁碟即將用盡的普通使用者來說,這都是乙個非常常見的問題。一般我們會想到解決的方法是:

1.掛接乙個新的硬碟,然後使用符號鏈結,鏈結到新的硬碟。

2.利用一些調整分割槽大小的工具(比如pqmagic),進行無損傷資料分割槽。

一、問題的提出

但是,這些都只是暫時性的解決辦法,而且都需要讓機器停止執行或者持續很長時間的分割槽工作而不能正常提供服務。即使緩解了硬碟空間問題,不久,仍然會面臨同樣的問題。

這對於乙個大型站點來說,有著數量眾多的客戶、又連線在網際網路上,只要你的伺服器關機一分鐘,都會給公司帶來很大損失。此外,使用這種方法,在修改了分割槽表之後,每一次都得重新啟動系統。因此,我們可以採用新技術lvm(邏輯卷管理程式)可以幫助我們解決這些問題。

二、什麼是lvm

lvm(logical volume manager,邏輯卷管理器)是一種把硬碟驅動器空間分配成邏輯卷的方法,使硬碟不必使用分割槽也能被簡單地重新劃分大小。傳統上,乙個分割槽大小是靜態的。假如乙個使用者在這個分割槽上沒有空間時,他要麼重新分割槽(這可能要求整個操作系統重灌),要麼像符號連線一樣使用組裝機。

使用lvm,硬碟驅動器或硬碟驅動器集合就會分配給乙個或多個物理卷(physical volumes)。物理卷被合併成邏輯捲組(logical volume group),惟一例外的是/boot分割槽。由於物理卷無法跨越乙個以上驅動器,如果想讓邏輯捲組跨越乙個以上驅動器,就應該在驅動器上建立乙個或多個物理卷。

邏輯捲組被分成邏輯卷(logical volumes),被分配了掛載點(如/home和/),以及檔案系統型別(如ext3)。當「分割槽」達到了它們的極限,邏輯卷組中的空閒空間就可以被新增給邏輯捲來增加分割槽的大小。當某個新的硬碟驅動器被新增到系統上,它也可以被新增到邏輯卷組中,邏輯卷是可以擴充套件的分割槽。

由於lvm允許在機器的物理儲存資源以外建立邏輯卷,並且邏輯卷可以在系統仍處於執行狀態時擴充和縮減,所以就為linux系統管理員提供了他們夢寐以求的儲存器靈活性。

lvm的作用:lvm 的實際運作情形則根據作法不同,而有所差異;但 lvm 通常包括實體儲存分群(physical storage grouping)、重設邏輯扇區大小(logical volume resizing)、以及資料轉移(data migrating)。

三、lvm的歷史

當然,lvm並不是最新技術,早在unix作業系統時代,像hp,ibm aix上就可以看到vm的身影,作為ibm的旗艦產品,aix很早就支援了動態邏輯分割槽(dvm),當然,它的dvm設計是比較厲害的,此後在aix 5l中,重構了unix核心,增加了邏輯卷管理(lvm)和日誌檔案系統(jfs)等功能。使之aix更加強大。在各種商業unix系統中,譬如aix,hp-unix,tru64 unix等系統中,邏輯卷管理已經被廣泛採用,成了事實上的乙個標準。

lvm 的功能於2.3 核心發展中版本納入支援。2023年1月,linux 2.4.0核心發布,開始正式支援邏輯卷管理,使得linux新核心更適應於伺服器的應用。

以前版本的linux必須要在核心上打上相應的補丁才到實現lvm功能。現在,我們看到從redhat linux 9.0已經在核心級支援lvm。

因此,我們可以使用lvm來幫助我們更加有效的管理磁碟。

要注意的是 lvm 有兩個版本,分別為 lvm 1 與 lvm 2,相關工具與設定方式會有些差異性,本文都會使用 lvm 2 的環境介紹使用。lvm1 命令只能在 2.4 核心上工作。

當執行 2.6 核心時,不能使用 lvm1 命令。關於更多關於 lvm2 的資訊,請參閱 /usr/share/doc/lvm2*/whats_new。

乙個完整的 lvm2 命令被安裝在 /usr/sbin/。在 /usr/ 還無效的啟動環境中,每個命令前需要加上 /sbin/lvm.static(例如, /sbin/lvm.

static vgchange -ay)。 在 /usr/ 有效的環境中,不再需要在每個命令前加 lvm (例如,/usr/sbin/lvm vgchange -ay 變為 /usr/sbin/vgchange -ay)。 新的 lvm2 命令(例如,/usr/sbin/vgchange -ay 和 /sbin/lvm.

static vgchange -ay)會檢測您是否在執行 2.4 核心。如果是,它會呼叫舊的 lvm1 命令。

四、lvm結構和分類

lvm是邏輯盤卷管理(logical volume manager)的簡稱,它是linux環境下對磁碟分割槽進行管理的一種機制,它將多個物理分割槽匯聚為乙個捲組(volume group),而且這些物理卷的大小可以不相同,甚至型別也可以不同(如scsi、sata磁碟)。組成的卷組就像一塊大硬碟,然後再從中分割出一塊一塊的邏輯卷(logical volume),並進一步在邏輯卷組上建立檔案系統。如圖1。

圖1 lvm結構

lvm最大的優點是不在考慮物理磁碟的特徵,中間構架了一層「絕緣層」,或者以現代名詞,叫作服務層,提供磁碟空間服務。如果沒有這個中間層,必然存在物理磁碟大小的限制,這是不可克服的事實,在這個磁碟上進行的分割槽,必然受到物理條件制約,儲存資料很不方便。在一台計算機只有乙個100m磁碟的年代,這並不是大問題,lvm logical volume manager設計之初,就認識到了人類懶惰的本質,在效能、可管理性、相容、功能支援等方面,實現了很好的平衡。

lvm支援兩種模式的邏輯卷(logical volumes),一種是串連模式(concatenation)另一種是條塊模式(striping),系統預設是串連模式。這兩種模式有什麼區別呢?比如,有兩塊ide介面的30gb硬碟/dev/hdb、/dev/hdc,它們共同組成了乙個捲組vg1,在此卷組上建立了乙個40gb的邏輯卷lv1。

如果這個邏輯卷是串連模式,資料在兩塊硬碟上將順序存放,只有當一塊硬碟存滿之後才去使用另一塊硬碟。 如果這個邏輯卷是條塊模式,資料將被分割成固定大小的條塊,然後分散存放到兩塊硬碟上。這樣意味著你有更多有效的磁碟頻寬,資料的讀寫速度將大幅提高。

條塊模式儘管給我們帶來了高效能,但也帶來了高風險,如果任一塊磁碟壞掉,那全部的邏輯卷都會丟失,其結果將是災難性的。然而lvm技術對這種災難已經早有防範,lvm的實現不僅可以在磁碟分割槽上實現也可以在raid卷上實現。無論是硬體raid還是軟體raid,lvm都給予了很好的支援。

圖2 lvm支援兩種模式的邏輯卷

五、lvm的snapshots(快照)特性

lvm 提供了乙個非常好的特性:snapshots(快照)。它允許管理員建立乙個塊裝置:

該裝置是一邏輯卷在某一時刻凍結的精確拷貝。這個特性通常用於批處理過程(如備份)需要處理邏輯卷,但又不能停止系統。當操作完成時,snapshot(快照)裝置可以被移除。

這個特性要求在建立 snapshot (快照)裝置時邏輯卷處於相容狀態。使用lvm,我們可以做乙個lv瞬間的快照,然後掛載(mount)它,再備份它。請注意,快照不是永久的。

如果你卸下lvm或重啟,它們就丟失了,需要重新建立。圖3是lvm snapshots(快照)示意圖。

圖3 lvm snapshots(快照)示意圖

快照有2種方式: 一種是唯讀另一種是可讀寫。如果你只須拷貝資料,那麼唯讀快照看起來不錯,不過可讀寫快照則有好幾個優點。

首先是無需額外處理日至檔案系統 -- 你可以快照上簡單地實現日誌恢復。唯讀快照則必須保證檔案系統在開始快照之前就得和裝置同步,因此需要日誌重現。

六、常用術語

物理儲存介質(the physical media) :系統的儲存裝置:硬碟或硬碟上的分割槽,如:/dev/sda、/dev/hda等等,是儲存系統底層的儲存。

物理卷(pv)physical volume :硬碟分割槽或從邏輯上與硬碟分割槽具有同樣功能的裝置(如 raid),是 lvm 的基本儲存邏輯塊,和基本的物理儲存介質(如分割槽、磁碟等)不同的是,其中包含有 lvm 管理引數。

捲組(vg)volume group :lvm 中的最高抽象層,由乙個或多個物理卷組成。乙個邏輯卷管理系統中可以只有乙個捲組,也可以擁有多個捲組。

邏輯卷(lv)logical volume :邏輯卷(lv)在卷組上建立,相當於非 lvm 系統中的分割槽,可以在其上建立檔案系統,如/home 或者 /var 等。系統中的多個邏輯卷可以屬於同乙個捲組,也可以屬於不同的多個捲組。

物理區域(pe)physical extent :每乙個物理卷被劃分為大小相等的稱為 pe(physical extents)的基本單元。物理區域是物理卷中可用於分配的最小儲存單元,物理區域的大小可根據實際情況在建立物理卷時指定。

物理區域大小一旦確定將不能更改,同一卷組中的所有物理卷的物理區域大小需要一致。 pe 的大小是可配置的,預設為4mb。

邏輯區域(le)logical extent :邏輯卷也被劃分為被稱為 le(logical extents)的可被定址的基本單位。在同乙個卷組中,le的大小和 pe 是相同的,並且一一對應。

vgda(捲組描述符區域) :和非 lvm 系統將包含分割槽資訊的元資料儲存在位於分割槽起始位置的分割槽表中一樣,邏輯卷以及捲組相關的元資料被儲存在位於物理捲起始處的 vgda 中。vgda 包括以下內容:

pv 描述符、vg 描述符、lv 描述符、和一些 pe 描述符。系統啟動 lvm 時啟用 vg,並將 vgda 載入至記憶體,來識別 lv 的實際物理儲存位置。當系統進行 i/o 操作時,就會根據 vgda 建立的對映機制來訪問實際的物理位置。

圖4 磁碟分割槽、捲組、邏輯卷和檔案系統之間的邏輯關係的示意圖

七、有了 lvm,還要 raid 幹嘛?

既然 lvm 跟 raid 的功能相近(例如可以動態換壞掉的硬碟),又有後者所不及之處(例如為卷冊動態加入更多空間),那許多使用者會想,我們還要 raid 幹什麼?事實上,raid 與 lvm 是互補的技術,可以搭配使用(就跟複合式 raid 一樣),互採所長,互補其短。

介紹了lvm的原理和基礎入門知識。我們知道,redhat linux 8.0開始核心內建了對lvm的支援而rehl 3.

0-4.0中更是把lvm作為安裝時的預設卷管理方式),而且可以在安裝時使用lvm。也可安裝後使用。

下面介紹在使用圖形方式安裝過程中使用邏輯盤卷管理的步驟。本文介紹redhat as 4.0下的lvm2配置方法。

由於lvm 的配置相對複雜,在redhat as 4.0 中支援圖形方式安裝對邏輯卷管理配置的支援,所以使用者如果需要在安裝過程中建立邏輯卷,只能選擇圖形方式不能選擇文字安裝方式安裝。redhat as 4.

0 整個安裝過程一共30多個步驟限於篇幅這裡只列出和邏輯盤卷管理相關的步驟。

伺服器儲存技術方案

本系統以 先進性 可靠性 實用性 經濟性 擴充套件性 為基本原則,具體如下 先進性 採用成熟 主流的裝置構建系統,系統建設充分利用當前最新的儲存裝置 資料 網路等技術,充分兼顧需求和技術的不斷變化,建設業內領先的伺服器儲存系統 ups不間掉電源系統和門禁系統。可靠性 系統硬體採用專業的伺服器及專業裝...

Linux1 DNS伺服器構建從網域名稱伺服器

從網域名稱伺服器作為主網域名稱伺服器的冗餘備份,可以與主網域名稱伺服器一起,同時提供本域內計算機名到ip位址的解析,從網域名稱伺服器的位址資料庫需要從主網域名稱伺服器中定期更新。從網域名稱伺服器的主配置檔案也是 etc 也需要設定伺服器的 options 主語句和根區域,方法與配置主網域名稱伺服器的...

Linux伺服器效能評估與優化

1.作業系統級 cpu記憶體 磁碟i o頻寬 網路i o頻寬 2.程式應用級 其中 user 表示cpu處在使用者模式下的時間百分比。sys 表示cpu處在系統模式下的時間百分比。iowait 表示cpu等待輸入輸出完成時間的百分比。swap in 即si,表示虛擬記憶體的頁匯入,即從swap di...