linux lvm 查看,Linux LVM 詳解

邏輯卷管理LVM是一個多才多藝的硬盤系統工具。無論在Linux或者其他類似的系統,都是非常的好用。傳統分區使用固定大小分區,重新調整大小十分麻煩。但是,LVM可以創建和管理“邏輯”卷,而不是直接使用物理硬盤。可以讓管理員彈性的管理邏輯卷的擴大縮小,操作簡單,而不損壞已存儲的數據。可以隨意將新的硬盤添加到LVM,以直接擴展已經存在的邏輯卷。LVM并不需要重啟就可以讓內核知道分區的存在。

LVM使用分層結構,如下圖所示。

64e1f952a2beae5808ccc7574b8c9d11.png

圖中頂部,首先是實際的物理磁盤及其劃分的分區和其上的物理卷(PV)。一個或多個物理卷可以用來創建卷組(VG)。然后基于卷組可以創建邏輯卷(LV)。只要在卷組中有可用空間,就可以隨心所欲的創建邏輯卷。文件系統就是在邏輯卷上創建的,然后可以在操作系統掛載和訪問。

LVM測試說明

本文將介紹怎么在linux中創建和管理LVM卷。我們將會分成兩個部分。第一個部分,我們首先要在一個硬盤上創建多個邏輯卷,然后將它們掛載在/lvm-mount目錄。然后我們將要對創建好的卷調整大小。而第二部分,我們將會從另外一塊硬盤增加額外的卷到LVM中。

準備磁盤分區

通過使用fdisk,創建磁盤分區。我們需要創建3個1G分區,注意,并不要求分區的大小一致。同樣,分區需要使用‘8e’類型來使他們可用于LVM。

# fdisk /dev/sdb

Command (m for help): n ## 新建

Command action

e extended

p primary partition (1-4)

p ## 主分區

Partition number (1-4): 1 ## 分區號

First cylinder (1-1044, default 1): ## 回車用默認的1

Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +1G ## 大小

Command (m for help): t ## 改變類型

Selected partition 1

Hex code (type L to list codes): 8e ## LVM 的分區代碼

Changed system type of partition 1 to 8e (Linux LVM)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# fdisk /dev/sdb

Command(mforhelp):n## 新建

Commandaction

eextended

pprimarypartition(1-4)

p## 主分區

Partitionnumber(1-4):1## 分區號

Firstcylinder(1-1044,default1):## 回車用默認的1

Lastcylinder,+cylindersor+size{K,M,G}(1-1044,default1044):+1G## 大小

Command(mforhelp):t## 改變類型

Selectedpartition1

Hexcode(typeLtolistcodes):8e## LVM 的分區代碼

Changedsystemtypeofpartition1to8e(LinuxLVM)

重復上面的操作來創建其他兩個分區。分區創建完成后,我們應該有類似如下的輸出:

# fdisk -l

Device Boot Start End Blocks Id System

/dev/sdb1 1 132 1060258+ 8e Linux LVM

/dev/sdb2 133 264 1060290 8e Linux LVM

/dev/sdb3 265 396 1060290 8e Linux LVM

1

2

3

4

5

# fdisk -l

DeviceBootStartEndBlocksIdSystem

/dev/sdb111321060258+8eLinuxLVM

/dev/sdb213326410602908eLinuxLVM

/dev/sdb326539610602908eLinuxLVM

準備物理卷(PV)

剛創建的分區是用來儲存物理卷的。LVM可以使用不同大小的物理卷。

# pvcreate /dev/sdb1

# pvcreate /dev/sdb2

# pvcreate /dev/sdb3

1

2

3

# pvcreate /dev/sdb1

# pvcreate /dev/sdb2

# pvcreate /dev/sdb3

使用下列命令檢查物理卷的創建情況。下面截取部分輸出。”/dev/sdb2″是一個新的”1.01 GiB”物理卷。

# pvdisplay

--- NEW Physical volume ---

PV Name /dev/sdb2

VG Name

PV Size 1.01 GiB

Allocatable NO

PE Size 0

Total PE 0

Free PE 0

Allocated PE 0

PV UUID jszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092

1

2

3

4

5

6

7

8

9

10

11

# pvdisplay

---NEWPhysicalvolume---

PVName/dev/sdb2

VGName

PVSize1.01GiB

AllocatableNO

PESize0

TotalPE0

FreePE0

AllocatedPE0

PVUUIDjszvzz-ENA2-g5Pd-irhV-T9wi-ZfA3-0xo092

使用下列命令可以刪除物理卷。

# pvremove /dev/sdb1

1

# pvremove /dev/sdb1

準備卷組(VG)

下列命令用來創建名為’volume-group1′的卷組,使用/dev/sdb1, /dev/sdb2 和 /dev/sdb3創建。

# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

--- Volume group ---

VG Name volume-group1

System ID

Format lvm2

Metadata Areas 3

Metadata Sequence No 1

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 0

Open LV 0

Max PV 0

Cur PV 3

Act PV 3

VG Size 3.02 GiB

PE Size 4.00 MiB

Total PE 774

Alloc PE / Size 0 / 0

Free PE / Size 774 / 3.02 GiB

VG UUID bwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

# vgcreate volume-group1 /dev/sdb1 /dev/sdb2 /dev/sdb3

---Volumegroup---

VGNamevolume-group1

SystemID

Formatlvm2

MetadataAreas3

MetadataSequenceNo1

VGAccessread/write

VGStatusresizable

MAXLV0

CurLV0

OpenLV0

MaxPV0

CurPV3

ActPV3

VGSize3.02GiB

PESize4.00MiB

TotalPE774

AllocPE/Size0/0

FreePE/Size774/3.02GiB

VGUUIDbwd2pS-fkAz-lGVZ-qc7C-TaKv-fFUC-IzGNBK

從輸出中,我們可以看見卷組的使用量/總量。物理卷給卷組提供空間。只要在這個卷組中還有可用空間,我們就可以隨意創建邏輯卷。

使用下列命令刪除卷組

# vgremove volume-group1

1

# vgremove volume-group1

創建邏輯卷(LV)

下列命令創建一個名為’1v1′、大小為100MB的邏輯卷。我們使用小分區減少執行時間。這個邏輯卷使用之前創建的卷組的空間。

# lvcreate -L 100M -n lv1 volume-group1

1

# lvcreate -L 100M -n lv1 volume-group1

邏輯卷可使用lvdisplay命令查看。

# lvdisplay

--- Logical volume ---

LV Name /dev/volume-group1/lv1

VG Name volume-group1

LV UUID YNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlW

LV Write Access read/write

LV Status available

# open 0

LV Size 100.00 MiB

Current LE 25

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# lvdisplay

---Logicalvolume---

LVName/dev/volume-group1/lv1

VGNamevolume-group1

LVUUIDYNQ1aa-QVt1-hEj6-ArJX-I1Q4-y1h1-OFEtlW

LVWriteAccessread/write

LVStatusavailable

# open???????????????? 0

LVSize100.00MiB

CurrentLE25

Segments1

Allocationinherit

Readaheadsectorsauto

-currentlysetto256

Blockdevice253:2

現在邏輯卷已經準備好了,我們可以格式化和掛載邏輯卷,就像其它ext2/3/4分區一樣!

# mkfs.ext4 /dev/volume-group1/lv1

# mkdir /lvm-mount

# mount /dev/volume-group1/lv1 /lvm-mount/

1

2

3

# mkfs.ext4 /dev/volume-group1/lv1

# mkdir /lvm-mount

# mount /dev/volume-group1/lv1 /lvm-mount/

一旦邏輯卷掛載,我們就可以到掛載點 /lvm-mount/ 上讀寫了。要創建和掛載其它的邏輯卷,我們重復這個過程。

最后,使用lvremove我們可以刪除邏輯卷。

# umount /lvm-mount/

# lvremove /dev/volume-group1/lv1

1

2

# umount /lvm-mount/

# lvremove /dev/volume-group1/lv1

擴展一個LVM卷

調整邏輯卷大小的功能是LVM最有用的功能。這個部分會討論我們怎么樣擴展一個存在的邏輯卷。下面,我們將會擴展先前創建的邏輯卷‘lv1’擴大到200MB。

注意,調整邏輯卷大小之后,也需要對文件系統調整大小進行匹配。這個額外的步驟各不相同,取決于創建文件系統的類型。在本文中,我們使用’lv1′創建了ext4類型的文件系統,所以這里的操作是針對ext4文件系統的。(ext2/3文件系統也類同)。命令的執行順序是很重要的。

首先,我們卸載掉lv1卷

# umount /lvm-mount/

1

# umount /lvm-mount/

然后,設置卷的大小為200M

# lvresize -L 200M /dev/volume-group1/lv1

1

# lvresize -L 200M /dev/volume-group1/lv1

接下來,檢查磁盤錯誤

# e2fsck -f /dev/volume-group1/lv1

1

# e2fsck -f /dev/volume-group1/lv1

運行以下命令擴展文件系統以后,ext4信息就更新了。

# resize2fs /dev/volume-group1/lv1

1

# resize2fs /dev/volume-group1/lv1

現在,這個邏輯卷應該已經擴展到200MB了。我們檢查LV的狀態來驗證。

# lvdisplay

--- Logical volume ---

LV Name /dev/volume-group1/lv1

VG Name volume-group1

LV UUID 9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa

LV Write Access read/write

LV Status available

# open 0

LV Size 200.00 MiB

Current LE 50

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# lvdisplay

---Logicalvolume---

LVName/dev/volume-group1/lv1

VGNamevolume-group1

LVUUID9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa

LVWriteAccessread/write

LVStatusavailable

# open???????????????? 0

LVSize200.00MiB

CurrentLE50

Segments1

Allocationinherit

Readaheadsectorsauto

-currentlysetto256

Blockdevice253:2

現在,這個邏輯卷可以再次掛載,同樣這個方法也可用于其他分區。

縮減一個LVM卷

這章節介紹縮減LVM卷大小的方法。命令的順序同樣重要。并且,下列命令對ext2/3/4文件系統同樣有效。

注意減少邏輯卷的大小值若小于儲存的數據大小,存儲在后面的數據會丟失。

首先,卸載掉卷。

# umount /dev/volume-group1/lv1

1

# umount /dev/volume-group1/lv1

然后,檢測磁盤錯誤

# e2fsck -f /dev/volume-group1/lv1

1

# e2fsck -f /dev/volume-group1/lv1

接下來縮小文件系統,更新ext4信息。

# resize2fs /dev/volume-group1/lv1 100M

1

# resize2fs /dev/volume-group1/lv1 100M

完成以后,減少邏輯卷大小

# lvresize -L 100M /dev/volume-group1/lv1

1

# lvresize -L 100M /dev/volume-group1/lv1

WARNING: Reducing active logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv1? [y/n]: y Reducing logical volume lv1 to 100.00 MiB Logical volume lv1 successfully resized

最后,驗證調整后的邏輯卷大小。

# lvdisplay

--- Logical volume ---

LV Name /dev/volume-group1/lv1

VG Name volume-group1

LV UUID 9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa

LV Write Access read/write

LV Status available

# open 0

LV Size 100.00 MiB

Current LE 25

Segments 1

Allocation inherit

Read ahead sectors auto

- currently set to 256

Block device 253:2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

# lvdisplay

---Logicalvolume---

LVName/dev/volume-group1/lv1

VGNamevolume-group1

LVUUID9RtmMY-0RIZ-Dq40-ySjU-vmrj-f1es-7rXBwa

LVWriteAccessread/write

LVStatusavailable

# open???????????????? 0

LVSize100.00MiB

CurrentLE25

Segments1

Allocationinherit

Readaheadsectorsauto

-currentlysetto256

Blockdevice253:2

轉自:http://xmodulo.com/2014/05/use-lvm-linux.html

譯文:http://blog.jobbole.com/71858/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/537777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/537777.shtml
英文地址,請注明出處:http://en.pswp.cn/news/537777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cnblogs修改網站圖標icon

以下修改網絡地址即可 <script type"text/javascript" language"javascript">//Setting ico for cnblogsvar linkObject document.createElement(link);linkObject.rel "shortcut icon";linkObject.href "icon的網絡地址";do…

maven settings.xml國內倉庫配置

<?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/SETTINGS/1.…

智慧園區-樓宇建模技巧之【建樓篇】

一、國際慣例先上圖 二、有什么用&#xff1f;用什么搞的&#xff1f;花了多久&#xff1f; 用途 室內定位(會議室、停車位查找等)安防監控(直接定位到某個樓道的攝像頭拉取視頻流)各種傳感器數據三維可視化請問哪里可以買到呢(含笑半步癲2333) 我這里正好有一個。https://iot.…

android meta工具,android ota 升級包制作分析 (5 工具)

工具1 mkbootfsmkbootfs的源代碼在system/core/cpio中。??mkbootfs -f boot_filesystem_config.txt targetfiles/BOOT/RAMDISK | minigzip > ramdisk.img2 mkbootimgmkbootimg的源代碼在system/core/mkbootimg中。mkbootimg --kernel kernel --ramdisk ramdisk.img --outp…

asp.net core輸出中文亂碼的問題

原文:asp.net core輸出中文亂碼的問題 摘要 在學習asp.net core的時候&#xff0c;嘗試在控制臺&#xff0c;或者頁面上輸出中文&#xff0c;會出現亂碼的問題。 問題重現 新建控制臺和站點 public class Program{public static void Main(string[] args){ Console.W…

android oom工具,Android OOM-Heap,MAT工具檢測內存泄露

概述在android的開發中&#xff0c;要時刻主要內存的分配和垃圾回收&#xff0c;因為系統為每一個dalvik虛擬機分配的內存是有限的&#xff0c;在google的G1中&#xff0c;分配的最大堆大小只有16M&#xff0c;后來的機器一般都為24M&#xff0c;實在是少的可憐。這樣就需要我們…

windows 端微信多開

假設微信安裝目錄為 "E:\Program Files\WeChat\WeChat.exe" 打開記事本&#xff0c;復制一下命令&#xff0c;保存為 bat 文件 echo off start /d "E:\Program Files\WeChat\" WeChat.exe start /d "E:\Program Files\WeChat\" WeChat.exe exi…

超詳細MFS網絡分布式文件系統

-----------------------MFS---------------------- (1)分布式原理 分布式文件系統( Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上&#xff0c;而是通過計算機網絡與節點相連。簡單來說&#xff0c;就是把一些分散的(分布在局域網內各個…

markdown文件轉word文件

工具&#xff1a; https://github.com/jgm/pandoc/releases/tag/2.2.3.2 下載pandoc安裝包之后&#xff0c;像安裝普通軟件一樣點開安裝就可以了。安裝完成之后&#xff0c;打開cmd命令行&#xff0c;輸入pandoc -v&#xff0c;如果正常顯示出類似下面的信息就表明安裝成功&a…

android全面屏系統哪個版本開始,Android全面屏

所謂全面屏手機&#xff0c;就是屏幕縱橫比大于1.86的設備。例如&#xff1a;舉個例子.png官方文檔&#xff1a;If your app targets Android 8.0 (API level 26) or higher, it fills the entire screen, according to its layout.If your app targets Android 7.1 (API level…

AliOS Things聲源定位應用演示

摘要&#xff1a; 1. 概述 利用麥克風陣列進行聲源定位在智能降噪、語音增強、語音識別等領域有廣泛應用和研究前景。本文介紹基于AliOS Things STM32F413H Discovery開發板實現聲源定位算法集成和功能演示。 概述利用麥克風陣列進行聲源定位在智能降噪、語音增強、語音識別等…

Mysql 使用正則表達式

需求&#xff1a;匹配出姓名字段里非中文的 SELECT * FROM 表 WHERE REAL_NAME REGEXP ([\\u4e00-\\u9fa5]{1,20}|[a-zA-Z\\.\\s]{1,20}) ; 查詢結果如下

Android點擊返回鍵銷毀自己,Activity界面銷毀 軟鍵盤未收回

在項目開發過程中&#xff0c;界面包含EditText輸入框時&#xff0c;輸入內容時軟鍵盤彈起。但是此時我們調用界面中自定義的返回按鈕執行.finish()方法銷毀Activity后發現軟鍵盤并沒有跟隨關閉收回&#xff0c;參考了網上各種方法后&#xff0c;試驗總結出自己項目中可用的方案…

2、Collections操作(自定義類)的各種實現

2019獨角獸企業重金招聘Python工程師標準>>> 1、排序(sort) 要想實現排序&#xff0c;必須實現compare方法&#xff0c;這樣Collection才知道是怎樣的排序規則。普通的數據類型&#xff0c;比如&#xff1a;int 、String、long等都已經實現了Comparable接口&#xf…

Mysql sql語句積累

分組排序 #alter table zxfw_offline_qa add zx_number varchar(50) COMMENT 咨詢編號&#xff0c;提問日期提問順序 AFTER id;/* select (i : case when pre_consult_timeconsult_time then i 1 else 1 end ) rownum, qa.*,(pre_consult_time:consult_time) from zxfw_…

中綴表達式轉換成后綴表達式(只適用于加減乘除運算)

1 #include <iostream>2 #include <stack>3 #include <cctype>4 5 using namespace std;6 7 //獲取符號的優先級8 int getPriority(char c)9 { 10 int priority -1; 11 switch (c) { 12 case : 13 priority 1; 14 break; 15 …

android多接口請求參數,okhttp3 使用json參數post方式請求接口數據(android)

1. 谷歌自帶的json不支持像map一樣直接put字符串進去&#xff0c;所以先導入阿里的json包2. 創建json對象&#xff0c;并且放入所要請求的參數 //登錄 private void loginRequest() { String url Contents.url"login"; JSONObject json new JSONObject(); json.put…

由淺入深,一文掌握NGINX知識文集

&#x1f3c6;作者簡介&#xff0c;普修羅雙戰士&#xff0c;一直追求不斷學習和成長&#xff0c;在技術的道路上持續探索和實踐。 &#x1f3c6;多年互聯網行業從業經驗&#xff0c;歷任核心研發工程師&#xff0c;項目技術負責人。 &#x1f389;歡迎 &#x1f44d;點贊?評論…

MySQL not in查詢不出數據(MySQL not in 無效)

今天使用 MySQL 的 not in 進行查詢的時候&#xff0c;發現結果里面并沒有返回任何數據。SQL 語句沒有任何問題&#xff0c;但是結果集卻是空&#xff0c;實在無法理解。糾結了半天&#xff0c;最后使用 left join&#xff0c;兩表關聯&#xff0c;找到了目標數據。但是這樣的話…

Python語法特點如注釋規則、代碼縮進、編碼規范等

在Python中&#xff0c;通常包括3種類型的注釋&#xff0c;分別是單行注釋、多行注釋和中文編碼聲明注釋。單行注釋在Python中&#xff0c;使用“#”作為單行注釋的符號。從符號“#”開始直到換行為止&#xff0c;“#”后面所有的內容都作為注釋的內容&#xff0c;并被Python編…