Linux中磁盤分區分爲MBR和GPT.node
MBR全稱爲Master Boot Record,爲主引導記錄,是傳統的分區機制,應用於絕大多數使用的BIOS的PC設備。linux
- MBR分區的特色:
- MBR支持32位和64位的系統
- MBR支持分區數量有限
- MBR只支持不超過2T的硬盤,超過2T的硬盤將只能用2T空間
GPT(全稱爲GUID Partition Table)分區爲全局惟一分區表,是一個較新的分區機制,解決了MBR不少缺點vim
- GPT分區的特色:
- 支持超過2T的磁盤(64位尋址)。Fdisk最大隻能創建2TB大小的分區
- 向後兼容MBR
- 必須在支持UEFI的硬件上才能使用(Intel提出,用於取代BIOS)
- 必須使用64位系統
- Mac、Linux、Windows7/8 64bit、windows Server2008 64bits系統都能支持GPT分區格式
GPT磁盤分區是使用parted工具實現的:windows
- Parted用法個經常使用選項:
用法:parted [選項]… [設備 [ 命令 [參數]… ]… ]緩存
將帶有參數的命令用於設備。若是沒有出現命令,則以交互模式運行。bash
- 幫助選項:
- -h,--help 顯示此幫助信息
- -l , --list 列出全部設備的分區信息
- -I , --interactive 在必要是,提示用戶-s, --script 從不提示用戶
- -v , --version 顯示版本
- 操做命令:
- Minot # 對文件系統進行一個簡單的檢查
- cp [FROM-DEVICE] FROM-MINOR TO-MINOR #將文件系統複製到另外一個分區
- mklable 標籤類型 #建立新的磁盤標籤(分區表)
- mkfs MINOR 文件系統類型 #在MINOR建立類型爲「文件系統類型」的文件系統
- mkpart 分區類型 [文件系統類型] 起始點 終止點 #建立一個分區
- mkpartfs 分區類型 文件系統類型 起始點 終止點 #建立一個帶有文件系統的分區
- move MINOR 起始點 終止點 #移動編號爲MINOR的分區
- name MINOR 名稱 #將編號爲MINOR的分區命名爲「名稱
- print [MINOR] #打印分區表,或者分區
- quit #退出程序
- rescue 起始點 終止點 #挽救臨近「起始點」、「終止點」的遺失的分區
- resize MINOR 起始點 終止點 #改變位於編號爲 MINOR 的分區中文件系統的大小
- rm MINOR #刪除編號爲 MINOR 的分區
- select 設備 #選擇要編輯的設備
- set MINOR 標誌 狀態 #改變編號爲 MINOR 的分區的標誌
要求:網絡
boock
大小爲2048,預留空間爲20%,卷標爲MYDATAapp
[root@localhost ~]# mkfs -t ext4 -b 2048 -m 20 -L MYDATA /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=MYDATA OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 5242880 blocks 1048576 blocks (20.00%) reserved for the super user First data block=0 Maximum filesystem blocks=273678336 320 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
掛載到/mydat
目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間dom
[root@localhost ~]# mkdir /mydata [root@localhost ~]# mount -o noatime,noexec /dev/sdb1 /mydata
可開機自動掛載ide
[root@localhost ~]# blkid /dev/sdb1 /dev/sdb1: LABEL="MYDATA" UUID="af467f45-8b5c-426f-9aa6-6327e0a4e064" TYPE="ext4" [root@localhost ~]# vim /etc/fstab UUID=af467f45-8b5c-426f-9aa6-6327e0a4e064 /mydata ext4 defaults 0 0 [root@localhost ~]# mount –a
建立 一個大小爲1G的swap分區,並啓用。
[root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): 2 First sector (20973568-41943039, default 20973568): Using default value 20973568 Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G Partition 2 of type Linux and of size 1 GiB is set Command (m for help): t Partition number (1,2, default 2): 2 Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks. [root@localhost ~]# fdisk -l /dev/sdb Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x3a339f3a Device Boot Start End Blocks Id System /dev/sdb1 2048 20973567 10485760 83 Linux /dev/sdb2 20973568 23070719 1048576 82 Linux swap / Solaris [root@localhost ~]# mkswap /dev/sdb2 [root@localhost ~]# swapon /dev/sdb3
編寫腳本計算/etc/passwd
文件中第10個用戶和第20個用戶id之和。
#!/bin/bash id1=$(head -10 /etc/passwd |tail -1 |cut -d: -f3) id2=$(head -20 /etc/passwd |tail -1 |cut -d: -f3) id_sum=$($id1+$id2) echo "id_sum=$id_sum"
將當前主機名保存至hostName
變量中,主機名爲空,或者爲localhost.localdomain
則將設置爲www.magedu.com
。
hostName=$(hostname) [ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostname www.magedu.com
編寫腳本,命令行參數傳入一個用戶名,判斷id
號是偶數仍是奇數。
#!/bin/bash if ![ $# -eq 1] ;then echo "please input one usename" exit 2 fi $uid = grep "^$1>" /etc/passwd | cut -d: -f3 $uid_yu = $uid % 2 if $uid_yu -eq 0 ;then echo "$1的ID號爲偶數" else echo "$1的ID號爲奇數" fi
lvm
基本應用以及擴展縮減實現。
Lvm基本應用以及擴展縮減實現(轉載自:http://blog.csdn.net/ikikik2002/article/details/5187276
1、 前言
LVM是邏輯卷管理(Logical Volume Manager)的簡稱,他是創建在物理存儲設備之上的一個抽象層,容許你生成邏輯存儲卷,和直接使用物理存儲在管理上相比,提供了更好靈活性。
LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外,和硬件相關的存儲設置被其隱藏,你能不用中止應用或卸載文件系統來調整卷大小或數據遷移.這樣能減小操做成本.
LVM和直接使用物理存儲相比,有如下好處:
- 靈活的容量.
當使用邏輯卷時,文件系統能擴展到多個磁盤上,你能聚合多個磁盤或磁盤分區成單一的邏輯卷.2.可伸縮的存儲池.
你能使用簡單的命令來擴大或縮小邏輯卷大小,不用從新格式化或分區磁盤設備.3.在線的數據再分配.
你能在線移動數據,數據能在磁盤在線的狀況下從新分配.好比,你能在線更換可熱插拔的磁盤.
- 方便的設備命名
邏輯卷能按你以爲方便的方式來起全部名稱.5.磁盤條塊化.
你能生成一個邏輯盤,他的數據能被條塊化存儲在2個或更多的磁盤上.這樣能明顯提高數據吞吐量.6.映像卷
邏輯卷提供方便的方法來映像你的數據.7.卷快照
使用邏輯卷,你能得到設備快照用來一致性備份或測試數據更新效果而不影響真實數據.2、 LVM基本術語
前面談到,LVM是在物理存儲上添加的一個邏輯層,來爲文件系統屏蔽下面的硬件存儲設備,提供了一個抽象的盤卷,在盤捲上創建文件系統。首先咱們討論如下幾個LVM術語:
- 物理存儲介質(The Physical Media)
這裏指系統的存儲設備,如:/dev/hda一、/dev/sda等等,是存儲系統最低層的存儲單元。- 物理卷(PV, Physical Volume)
物理卷就是指磁盤,磁盤分區或從邏輯上和磁盤分區具備一樣功能的設備(如RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有和LVM相關的管理參數。當前LVM容許你在每一個物理捲上保存這個物理卷的0至2份元數據拷貝.默認爲1,保存在設備的開始處.爲2時,在設備結束處保存第二份備份.- 卷組(VG, Volume Group)
LVM卷組相似於非LVM系統中的物理硬盤,其由物理卷組成。能在卷組上建立一個或多個「LVM分區」(邏輯卷),LVM卷組由一個或多個物理卷組成。- 邏輯卷(LV, Logical Volume)
LVM的邏輯卷相似於非LVM系統中的硬盤分區,在邏輯卷之上能創建文件系統(好比/home或/usr等)。*線性邏輯卷 (Linear Volumes)
一個線性邏輯卷聚合多個物理捲成爲一個邏輯卷.好比,若是你有兩個60GB硬盤,你能生成120GB的邏輯卷.*條塊化的邏輯卷(Striped Logical Volumes)
當你寫數據到此邏輯卷中時,文件系統能將數據放置到多個物理卷中.對於大量鏈接讀寫操做,他能改善數據I/O效率.*映像的邏輯卷(Mirrored Logical Volumes)
映像在不一樣的設備上保存一致的數據.數據同時被寫入原設備及映像設備.他提供設備之間的容錯。*快照卷(Snapshot Volumes)
快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,他複製一份對當前數據區域的改動,因爲他優先執行這些改動,因此他能重構當前設備的狀態。
- PE(physical extent)
每個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具備惟一編號的PE是能被LVM尋址的最小單元。PE的大小是可設置的,默認爲4MB。- LE(logical extent)
邏輯卷也被劃分爲被稱爲LE(Logical Extents) 的可被尋址的基本單位。在同一個卷組中,LE的大小和PE是相同的,而且一一對應。和非LVM系統將包含分區信息的元數據保存在位於分區的起始位置的分區表中相同,邏輯卷及卷組相關的元數據也是保存在位於物理捲起始處的VGDA(卷組描述符區域)中。VGDA包括如下內容: PV描述符、VG描述符、LV描述符、和一些PE描述符 。系統啓動LVM時激活VG,並將VGDA加載至內存,來識別LV的實際物理存儲位置。當系統進行I/O操做時,就會根據VGDA創建的映射機制來訪問實際的物理位置。
3、 安裝LVM
首先肯定系統中是否安裝了lvm工具:
[root@test2 root]# rpm ?qa|grep lvm
lvm-x-x-x
若是命令結果輸入相似於上例,那麼說明系統已安裝了LVM管理工具;若是命令沒有輸出則說明沒有安裝LVM管理工具,則須要從網絡下載或從光盤裝LVM rpm工具包。安裝了LVM的RPM軟件包之後,要使用LVM還須要設置內核支持LVM。RedHat默認內核是支持LVM的,若是須要從新編譯內核,則須要在設置內核時,進入Multi-device Support (RAID and LVM)子菜單,選中以選項:
Multiple devices driver support (RAID and LVM)
Device mapper support
Snapshot target (EXPERIMENTAL)
Mirror target (EXPERIMENTAL)
而後從新編譯內核,便可將LVM的支持添加到新內核中。爲了使用LVM,要確保在系統啓動時激活LVM,在RedHa的版本中,系統啓動腳本已具備對激活LVM的支持,在/etc/rc.d/rc.sysinit中有如下內容:
if [ -x /sbin/lvm.static ]; then
action $「Setting up Logical Volume Management:」 /sbin/lvm.static vgchange -a y --ignorelockingfailure
fi
vgchange -a y命令激活系統全部卷組。4、 建立和管理LVM
要建立一個LVM系統,通常須要通過如下步驟:
一、 建立分區
使用分區工具(如:fdisk等)建立LVM分區,方法和建立其餘通常分區的方式是相同的,差異僅僅是LVM的分區類型爲8e。
# fdisk -l /dev/sdb /dev/sdc
Disk /dev/sdb: 18.2 GB, 18200739840 bytes
255 heads, 63 sectors/track, 2212 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn’t contain a valid partition table
Disk /dev/sdc: 18.2 GB, 18200739840 bytes
255 heads, 63 sectors/track, 2212 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 200 1606468+ 8e Linux LVM
若是要將使用整塊盤,能經過下面的命令來覆蓋磁盤上的原有分區信息:
#dd if=/dev/zero of=/dev/sdc bs=512 count=1
二、 建立物理卷
建立物理卷的命令爲pvcreate,利用該命令將但願添加到卷組的全部分區或磁盤建立爲物理卷。將整個磁盤建立爲物理卷的命令爲:
# pvcreate /dev/sdb
Physical volume 「/dev/sdb」 successfully created
將單個分區建立爲物理卷的命令爲:
# pvcreate /dev/sdc1
Physical volume 「/dev/sdc1」 successfully created
也能同時生成多個卷:
#pvcreate /dev/sdb /dev/sdc1三、掃描塊設備
經過lvmdiskscan能看到那些設備成爲了物理卷.
#lvmdiskscan
/dev/ramdisk [ 16.00 MB]
/dev/sda [ 4.00 GB]
/dev/root [ 2.88 GB]
/dev/ram [ 16.00 MB]
/dev/sda1 [ 101.94 MB]
/dev/VolGroup00/LogVol01 [ 1.00 GB]
/dev/ram2 [ 16.00 MB]
/dev/sda2 [ 3.90 GB] LVM physical volume
/dev/lvm_test/test [ 508.00 MB]
/dev/ram3 [ 16.00 MB]
/dev/ram4 [ 16.00 MB]
/dev/ram5 [ 16.00 MB]
/dev/ram6 [ 16.00 MB]
/dev/ram7 [ 16.00 MB]
/dev/ram8 [ 16.00 MB]
/dev/ram9 [ 16.00 MB]
/dev/ram10 [ 16.00 MB]
/dev/ram11 [ 16.00 MB]
/dev/ram12 [ 16.00 MB]
/dev/ram13 [ 16.00 MB]
/dev/ram14 [ 16.00 MB]
/dev/ram15 [ 16.00 MB]
/dev/sdb [ 512.00 MB] LVM physical volume
/dev/sdc [ 512.00 MB] LVM physical volume
5 disks
16 partitions
2 LVM physical volume whole disks
1 LVM physical volume四、顯示物理卷
能使用pvs,pvscan,pvdisplay來顯示當前系統中的物理卷.
#pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup00 lvm2 a- 3.88G 0
/dev/sdb lvm_test lvm2 a- 508.00M 0
/dev/sdc lvm2 -- 512.00M 512.00M
#pvscan
PV /dev/sdb VG lvm_test lvm2 [508.00 MB / 0 free]
PV /dev/sda2 VG VolGroup00 lvm2 [3.88 GB / 0 free]
PV /dev/sdc lvm2 [512.00 MB]
Total: 3 [4.87 GB] / in use: 2 [4.37 GB] / in no VG: 1 [512.00 MB]
#pvdisplay
--- Physical volume ---
PV Name /dev/sdb
VG Name lvm_test
PV Size 512.00 MB / not usable 4.00 MB
Allocatable yes (but full)
PE Size (KByte) 4096
Total PE 127
Free PE 0
Allocated PE 127
PV UUID Pkp5Cq-SD1w-ANw2-cDDe-BGtw-nmFS-jTxXFD--- NEW Physical volume ---
PV Name /dev/sdc
VG Name
PV Size 512.00 MB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID BNCVEE-YWlK-0mrV-LOcf-0tCY-WWNw-DeySk0五、移除物理卷
#pvremove /dev/sdc
Labels on physical volume 「/dev/sdc」 successfully wiped六、 建立卷組
建立卷組的命令爲vgcreate,將使用pvcreate創建的物理卷建立爲一個完整的卷組:
# vgcreate lvm_test /dev/sdc1 /dev/sdb
Volume group 「lvm_test」 successfully created
vgcreate命令第一個參數是指定該卷組的邏輯名:lvm_test。後面參數是指定但願添加到該卷組的全部分區和磁盤。vgcreate在建立卷組 lvm_test 之外,還設置使用大小爲4 MB的PE(默認爲4MB),這表示卷組上建立的全部邏輯卷都以 4 MB 爲增量單位來進行擴充或縮減。PE最小爲1KB ,而且必須老是1KB的 2^n 的倍數(使用-s指定,具體請參考man vgcreate)。七、 激活卷組
卷組在建立時默認激活,也能使用vgchange來激活卷組:
# vgchange -a y lvm_test八、 添加新的物理捲到卷組中
當系統安裝了新的磁盤或新建分區並建立了新的物理卷,而要將其添加到已有卷組時,就須要使用vgextend命令:
#fdisk -l /dev/sdc
Disk /dev/sdc: 18.2 GB, 18200739840 bytes
255 heads, 63 sectors/track, 2212 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 200 1606468+ 8e Linux LVM
/dev/sdc2 201 400 1606500 8e Linux LVM#pvcreate /dev/sdc2
Physical volume 「/dev/sdc2」 successfully created# vgextend lvm_test /dev/sdc2
Volume group 「lvm_test」 successfully extended
這裏/dev/sdc2是新的物理卷。九、顯示卷組
顯示卷組能使用vgs和vgdisplay.
# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup00 1 2 0 wz--n- 3.88G 0
lvm_test 1 1 0 wz--n- 508.00M 0# vgdisplay
--- Volume group ---
VG Name lvm_test
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 1
Act PV 1
VG Size 508.00 MB
PE Size 4.00 MB
Total PE 127
Alloc PE / Size 127 / 508.00 MB
Free PE / Size 0 / 0
VG UUID uJx24t-WWdY-vffu-97Of-mgFB-FEov-eRwzAf十、掃描磁盤生成緩存文件
#vgscan
Reading all physical volumes. This may take a while...
Found volume group 「lvm_test」 using metadata type lvm2
Found volume group 「VolGroup00」 using metadata type lvm2十一、 從卷組中刪除一個物理卷
要從一個卷組中刪除一個物理卷,首先要確認要刪除的物理卷沒有被全部邏輯卷正在使用,就要使用pvdisplay命令察看一個該物理卷信息:
#pvdisplay /dev/sdc2
--- Physical volume ---
PV Name /dev/sdc2
VG Name lvm_test
PV Size 1.53 GB / not usable 868.00 KB
Allocatable yes
PE Size (KByte) 4096
Total PE 392
Free PE 392
Allocated PE 0 (表示未被使用)
PV UUID jAiils-1vRz-Td9k-1AiD-kIJs-191z-YMz09H
若是某個物理卷正在被邏輯卷所使用,就須要將該物理卷的數據備份到其餘地方,而後再刪除。刪除物理卷的命令爲vgreduce:
# vgreduce lvm_test /dev/sdc2
Removed 「/dev/sdc2」 from volume group 「lvm_test」十二、 建立邏輯卷
建立邏輯卷的命令爲lvcreate:
# lvcreate -L 1500 ?n test lvm_test
Logical volume 「test」 created
該命令就在卷組lvm_test上建立名字爲test,大小爲1500M的邏輯卷,而且設備入口爲/dev/lvm_test/test (lvm_test爲卷組名,test爲邏輯卷名)。若是但願建立一個使用所有卷組的邏輯卷,則須要首先察看該卷組的PE數,而後在建立邏輯卷時指定:
# vgdisplay lvm_test| grep 「Total PE」
Total PE 4731
# lvcreate -l 4731 lvm_test -n test
Logical volume 「test」 created1三、建立條塊化的邏輯卷
# lvcreate -L 500M -i2 -n test lvm_test
Using default stripesize 64.00 KB
Rounding size (125 extents) up to stripe boundary size (126 extents)
Logical volume 「test」 created
-i2指此邏輯卷在兩個物理卷中條塊化存放數據,默認一塊大小爲64KB.1四、建立映像的邏輯卷。
#lvcreate -L 52M -m1 -n test lvm_test /dev/sdb1 /dev/sdc1 /dev/sdb2
Logical volume 「test」 created
-m1表示只生成一個單一映像,映像分別放在/dev/sdb1和/dev/sdc1上,映像日誌放在/dev/sdb2上.1五、建立快照卷。
#lvcreate --size 10 --snapshot --name snaptest /dev/lvm_test/test
1六、 建立文件系統
如使用ext3文件系統:
#mkfs.ext3 /dev/lvm_test/test
mke2fs 1.35 (28-Feb-2004)
max_blocks 4294967295, rsv_groups = 0, rsv_gdb = 1024
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2424832 inodes, 4844544 blocks
242227 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=8388608
148 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
inode.i_blocks = 90120, i_size = 4243456
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
建立了文件系統之後,就能加載並使用他:
# mkdir /mnt/test
# mount /dev/lvm_test/test /mnt/test
若是但願系統啓動時自動加載文件系統,則還須要在/etc/fstab中添加內容:
/dev/lvm_test/test /mnt/test ext3 defaults 1 21七、 刪除一個邏輯卷
刪除邏輯卷之前首先須要將其卸載,而後刪除:
# umount /dev/lvm_test/test
# lvremove /dev/lvm_test/test
Do you really want to remove active logical volume 「test」? [y/n]: y
Logical volume 「test」 successfully removed
1八、 擴展邏輯卷大小
LVM提供了方便調整邏輯卷大小的能力,擴展邏輯卷大小的命令是lvextend:
# lvextend -L12G /dev/lvm_test/test
Extending logical volume test to 12.00 GB
Logical volume test successfully resized
上面的命令就實現將邏輯卷test的大小擴大爲12G。
# lvextend -L+1G /dev/lvm_test/test
Extending logical volume test to 13.00 GB
Logical volume test successfully resized
上面的命令就實現將邏輯卷test的大小增長1G。
增長了邏輯卷的容量之後,就須要修改文件系統大小以實現利用擴充的空間。
對於但願調整被加載的文件系統大小,使用ext2online(ext2resize) 或 resize2fs.
#df -h
# ext2online /dev/lvm_test/test
ext2online /dev/lvm_test/test
ext2online v1.1.18 - 2001/03/18 for EXT2FS 0.5b#df -h
Filesystem 容量 已用 可用 已用% 掛載點
/dev/mapper/VolGroup00-LogVol01
16G 11G 3.6G 76% /
/dev/sda1 494M 18M 451M 4% /boot
none 506M 0 506M 0% /dev/shm
/dev/mapper/lvm_test-test
13G 63M 13G 1% /mnt/test
通常建議最佳將文件系統卸載,調整大小,而後再加載:
# umount /dev/lvm_test/test
#resize2fs /dev/lvm_test/test
# mount /dev/lvm_test/test /mnt/test1九、 減小邏輯卷大小
使用lvreduce便可實現對邏輯卷的容量,一樣須要首先將文件系統卸載:
# umount /mnt/test
#e2fsck -f /dev/lvm_test/test
# resize2fs /dev/lvm_test/test 11G
# lvreduce -L -1.992G /dev/lvm_test/test (少2個PE的大小)
# resize2fs /dev/lvm_test/test (經過此命令確認是否文件系統大小和收縮後的邏輯卷大小匹配)
# mount /dev/lvm_test/test /mnt/test20、顯示邏輯卷
經過lvscan,lvs及lvdisplay能察看當前系統中存在的邏輯卷。
# lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID sPmLMD-6xq4-wStB-uSAP-jlQc-YKTm-3bt8Pc
LV Write Access read/write
LV Status available
# open 1
LV Size 2.88 GB
Current LE 92
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0#lvscan
lvscan
ACTIVE ’/dev/VolGroup00/LogVol00’ [2.88 GB] inherit
ACTIVE ’/dev/VolGroup00/LogVol01’ [1.00 GB] inherit#lvs -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)2一、使用過濾控制LVM的設備掃描
經過編輯/etc/lvm/lvm.conf 中的filter段,來定義過濾那些設備要掃描。
filter =[ 「a|/dev/sd.|」, 「a|/dev/hd.|」, 「r|.*|」 ]
上面對scsi及ide設備掃描,對其餘設備均不掃描。2二、在線數據遷移
經過pvmove能將一個PV上的數據遷移到新的PV上,也能將PV上的某個LV遷移到另外一個PV上。
#lvs -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
test lvm_test -wi-ao 52.00M /dev/sdb1(0)#pvmove -n test /dev/sdb1 /dev/sdc1
#lvs -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
test lvm_test -wi-ao 52.00M /dev/sdc1(0)2三、刪除卷組
按照順序卸載文件系統,刪除邏輯卷,而後刪除卷組。
#umount /mnt/test
# lvremove /dev/lvm_test/test
Do you really want to remove active logical volume 「test」? [y/n]: y
Logical volume 「test」 successfully removed
#vgremove lvm_test
Volume group 「lvm_test」 successfully removed
2四、故障排查
經過在命令後加 -v,-vv,-vvv或-vvvv來得到更周詳的命令輸出。
經過在lvs,vgs後加-P能更好的查看失敗設備.
#vgs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
VG #PV #LV #SN Attr VSize VFree Devices
VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(0)
VolGroup00 1 2 0 wz--n- 3.88G 0 /dev/sda2(92)
lvm_test 2 2 0 wz--n- 1016.00M 896.00M pvmove0(0)
lvm_test 2 2 0 wz--n- 1016.00M 896.00M /dev/sdb(0),/dev/sdc(0)
#lvs -a -o +devices -P
Partial mode. Incomplete volume groups will be activated read-only.
Failure parsing mirror status fraction: 1 core
Failure parsing mirror status fraction: 1 core
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
LogVol00 VolGroup00 -wi-ao 2.88G /dev/sda2(0)
LogVol01 VolGroup00 -wi-ao 1.00G /dev/sda2(92)
[pvmove0] lvm_test p-C-ao 60.00M /dev/sdb /dev/sdb(0),/dev/sdc(0)
test lvm_test -wI-a- 60.00M pvmove0(0)5、 總結
根據上面的討論能看到,LVM具備很是好的可伸縮性,使用起來很是方便。能方便地對卷組、邏輯卷的大小進行調整,更進一步調整文件系統的大小,還能方便的進行數據遷移,數據完整性保護。若是但願瞭解更多信息,請參考LVM-HOWTO。此文件使用內核爲2.6.22.1,在作pvmove時出現錯誤,如上.補丁以下:
Index: linux-2.6.21/drivers/md/dm-raid1.c
===================================================================
--- linux-2.6.21.orig/drivers/md/dm-raid1.c 2007-05-13 18:56:09.000000000 +0100
+++ linux-2.6.21/drivers/md/dm-raid1.c 2007-05-13 19:09:54.000000000 +0100
@@ -1288,12 +1288,12 @@ static int mirror_status(struct dm_targe
for (m = 0; m nr_mirrors; m++)
DMEMIT(「%s 「, ms->mirror[m].dev->name);- DMEMIT(「%llu/%llu」,
+ DMEMIT(「%llu/%llu 「,
(unsigned long long)ms->rh.log->type->
get_sync_count(ms->rh.log),
(unsigned long long)ms->nr_regions);- sz = ms->rh.log->type->status(ms->rh.log, type, result, maxlen);
+ sz += ms->rh.log->type->status(ms->rh.log, type, result+sz, maxlen-sz); break;