1. Linux磁盤管理
磁盤作為計(jì)算機(jī)系統(tǒng)最重要的設(shè)備,操作系統(tǒng)、數(shù)據(jù)等等都要存儲(chǔ)在其中钞速,因?yàn)榇疟P管理的好壞對(duì)整個(gè)系統(tǒng)至關(guān)重要璧眠。Linux系統(tǒng)下將磁盤作為一個(gè)文件管理琴锭,放置在/dev目錄下欲芹。
磁盤是塊設(shè)備:block ,存取單位“塊”。
磁盤設(shè)備的設(shè)備文件命名:/dev/DEV_FILE
不同磁盤標(biāo)識(shí):a-z,aa,ab…例如/dev/sda, /dev/sdb, ... /dev/sdaa,/dev/sdab...
同一設(shè)備上的不同分區(qū):1,2, .../dev/sda1, /dev/sda5
① 設(shè)備識(shí)別
在liunx系統(tǒng)要能看到這個(gè)磁盤設(shè)備指蚁,才能進(jìn)行下一步操作菩佑。fdsik -l
② 設(shè)備分區(qū)
在識(shí)別后使用fdisk或者其他分區(qū)工具。分區(qū)后可以創(chuàng)建PV凝化、VG和LV
當(dāng)然標(biāo)準(zhǔn)分區(qū)可以不創(chuàng)建PV稍坯,也可以不進(jìn)行分區(qū),直接整塊磁盤進(jìn)行格式化搓劫。(暫未找到這樣操作對(duì)磁盤是否有影響瞧哟。
③ 文件系統(tǒng)類型格式化
mfs.ext4(ext3,2,ext4dev)格式化成應(yīng)的系統(tǒng)格式
④ 在/etc/fstab 文件中創(chuàng)建條目
在fstab中寫入,系統(tǒng)啟動(dòng)時(shí)添加分區(qū)和文件系統(tǒng)掛載條目枪向。
掛載分區(qū)(設(shè)備) 文件掛載點(diǎn) 分區(qū)格式(文件系統(tǒng)類型)掛載選項(xiàng) dump和fsck
defaults: 所有選項(xiàng)全部使用默認(rèn)配置勤揩,包括rw, suid, dev, exec, auto, nouser, 和 async
fstab的第五列是表示dump選項(xiàng),dump工具通過這個(gè)選項(xiàng)位置上的數(shù)字來決定文件系統(tǒng)是否需要備份遣疯。如果是0雄可,dump就會(huì)被忽略,事實(shí)上缠犀,大多數(shù)的dump設(shè)置都是0。而第六列是fsck選項(xiàng)聪舒,fsck命令通過檢測(cè)該字段來決定文件系統(tǒng)通過什么順序來掃描檢查辨液,根文件系統(tǒng)/對(duì)應(yīng)該字段的值應(yīng)該為1,其他文件系統(tǒng)應(yīng)該為2箱残。若文件系統(tǒng)無需在啟動(dòng)時(shí)掃描檢查滔迈,則設(shè)置該字段為0。
uuid是設(shè)備唯一標(biāo)識(shí)符被辑,在多塊磁盤時(shí)候磁盤順序可能會(huì)在啟動(dòng)時(shí)變化燎悍,可以考慮使用uuid識(shí)別。
如果不重啟系統(tǒng)盼理,可以使用mount –a
⑤ mount 掛載新的文件系統(tǒng)
mount臨時(shí)手動(dòng)掛載文件系統(tǒng) mount /dev/sda1 /home/test
詳細(xì)使用可以參考mount
2. Linux磁盤掛載(標(biāo)準(zhǔn)分區(qū))
關(guān)于磁盤分區(qū)可以分為系統(tǒng)安裝和安裝后兩種情況谈山。這里主要討論系統(tǒng)安裝后新加的磁盤如何分區(qū)?分為以下幾步:
1.)查看現(xiàn)有磁盤情況
df –hT看到現(xiàn)有磁盤使用情況
fdisk –l 可以查看到系統(tǒng)中識(shí)別磁盤和分區(qū)情況
2.)磁盤分區(qū)
[zkml@test ~]$ sudo fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x3771e93c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m #輸入m查看幫助信息
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n #新建
Command action
e extended
p primary partition (1-4)
p #主分區(qū)
Partition number (1-4): 1 #第一個(gè)分區(qū)
First cylinder (1-2610, default 1): #磁盤開始位置
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): #可以填寫+10G分區(qū)大小
Using default value 2610
Command (m for help): t #可以修改分區(qū)系統(tǒng)類型ID 83標(biāo)準(zhǔn)分區(qū) 8e lvm分區(qū)宏怔。默認(rèn)標(biāo)準(zhǔn)分區(qū)可以不操作
Selected partition 1
Hex code (type L to list codes):
Hex code (type L to list codes): 83
Command (m for help): w #保存分區(qū)信息
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
以上就是分區(qū)后并保存分區(qū)信息的情況奏路,有的會(huì)在最后看到reboot字樣需要重啟分區(qū)表才能生效。如果不重啟可以執(zhí)行partprobe臊诊,重新讀取分區(qū)鸽粉。
如果是整塊磁盤用來做一個(gè)完整的使用,也可以不分區(qū)抓艳,跳過這一步直接格式化触机。
如果直接格式化使用fdisk –l 看不到分區(qū)情況的。
3.)磁盤格式化
使用對(duì)應(yīng)的格式化命令格式化。如果不格式化掛載報(bào)錯(cuò)
[zkml@test ~]$ mkfs.ext4 /dev/sdb1 ##格式化
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: 權(quán)限不夠 while trying to determine filesystem size
[zkml@test ~]$ sudo mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系統(tǒng)標(biāo)簽=
操作系統(tǒng):Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5241198 blocks
262059 blocks (5.00%) reserved for the super user
第一個(gè)數(shù)據(jù)塊=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
4.)磁盤掛載
[zkml@test ~]$ sudo mount /dev/sdb1 /home/test1
[zkml@test ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root 18G 3.0G 14G 19% /
tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 485M 33M 427M 8% /boot
/dev/sdb1 20G 172M 19G 1% /home/test1
格式化后可以直接使用mount進(jìn)行掛載儡首,此時(shí)掛載只是臨時(shí)性销斟,如果重啟會(huì)丟失。
5.)fstab創(chuàng)建條目椒舵,保證系統(tǒng)重啟磁盤掛載生效
#
# /etc/fstab
# Created by anaconda on Thu May 17 10:59:52 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg_test-lv_root / ext4 defaults 1 1
UUID=105e32e6-52c8-412d-8db7-55408556c842 /boot ext4 defaults 1 2
/dev/mapper/vg_test-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
關(guān)于每個(gè)參數(shù)含義參考上文蚂踊。這里建議使用uuid
如果省略第4步,直接編輯fstab 不重啟情況下可以使用
mount –a
6.)分區(qū)刪除
查看分區(qū)情況后笔宿,先取消掛載犁钟,在刪除分區(qū),再刪除fstab條目
[zkml@test ~]$ umount /dev/sdb1 #卸載掛載文件 權(quán)限問題
umount: only root can unmount UUID=fb936972-48e1-4114-a0e1-32c2fa2478ba from /home/test1
[zkml@test ~]$ sudo umount /dev/sdb1
[zkml@test ~]$ fdisk /dev/sdb #管理分區(qū)
Unable to open /dev/sdb
[zkml@test ~]$ sudo fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition #查看幫助中刪除分區(qū)
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): d #刪除分區(qū)泼橘,因?yàn)榇擞脖P只有一個(gè)分區(qū)直接刪除
Selected partition 1
Command (m for help): w #保存分區(qū)修改情況
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[zkml@test ~]$ sudo fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3771e93c
Device Boot Start End Blocks Id System
[zkml@test ~]$ sudo vi /etc/fstab #刪除fstab中條目
[zkml@test ~]$ sudo mount -a #fstab生效
[zkml@test ~]$ sudo fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x3771e93c
Device Boot Start End Blocks Id System
3. Linux磁盤掛載(LVM)
3.1 磁盤掛載
操作步驟查看磁盤情況和標(biāo)準(zhǔn)分區(qū)一樣涝动。在磁盤分區(qū)步驟中,修改如下地方炬灭。
Command (m for help): t #可以修改分區(qū)系統(tǒng)類型ID 83標(biāo)準(zhǔn)分區(qū) 8e lvm分區(qū)醋粟。默認(rèn)標(biāo)準(zhǔn)分區(qū)可以不操作
Selected partition 1
Hex code (type L to list codes):
Hex code (type L to list codes): 8e
-
創(chuàng)建PV
PV命令
[zkml@test ~]$ pv
pvchange pvck pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan
新建/dev/sdb1 /dev/sdb1 /dev/sdb2 /dev/sdb3
[zkml@test ~]$ sudo pvcreate /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3
Device /dev/sdb not found (or ignored by filtering). #當(dāng)對(duì)sdb磁盤分區(qū)后不再單獨(dú)作為一個(gè)分區(qū)。
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
[zkml@test ~]$ sudo pvs #查看PV情況 簡(jiǎn)化的 可以使用pvdisplay查看完整的
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_test lvm2 a-- 19.51g 0
/dev/sdb1 lvm2 a-- 5.01g 5.01g
/dev/sdb2 lvm2 a-- 10.00g 10.00g
/dev/sdb3 lvm2 a-- 4.98g 4.98g
當(dāng)對(duì)sdb重新分區(qū)后重归,可以看到sdb的pv還是存在米愿。當(dāng)我們重新構(gòu)建pv后不再存在
- 創(chuàng)建VG
[zkml@test ~]$ vg #查看vg一些命令
vgcfgbackup vgck vgdisplay vgimport vgmknodes vgrename vgsplit
vgcfgrestore vgconvert vgexport vgimportclone vgreduce vgs
vgchange vgcreate vgextend vgmerge vgremove vgscan
[zkml@test ~]$ sudo vgs #查看vg情況
VG #PV #LV #SN Attr VSize VFree
vg_test 1 2 0 wz--n- 19.51g 0
[zkml@test ~]$ sudo vgcreate vg0 /dev/sdb1 /dev/sdb2 #創(chuàng)建vg0
Volume group "vg0" successfully created
[zkml@test ~]$ sudo vgs #查看備份vg情況
VG #PV #LV #SN Attr VSize VFree
vg0 2 0 0 wz--n- 15.01g 15.01g
vg_test 1 2 0 wz--n- 19.51g 0
如果不創(chuàng)建VG,在pv上面直接格式化使用鼻吮,那么和標(biāo)準(zhǔn)分區(qū)是一樣的育苟。
當(dāng)多個(gè)物理卷組合成一個(gè)卷組后時(shí),LVM會(huì)在所有的物理卷上做類似格式化的工作椎木,將每個(gè)物理卷切成一塊一塊的空間违柏,這一塊一塊的空間就稱為PE(Physical Extent ),它的默認(rèn)大小是4MB香椎。
由于受內(nèi)核限制的原因漱竖,一個(gè)邏輯卷(Logic Volume)最多只能包含65536個(gè)PE(Physical Extent),所以一個(gè)PE的大小就決定了邏輯卷的最大容量畜伐,4 MB 的PE決定了單個(gè)邏輯卷最大容量為 256 GB馍惹,若希望使用大于256G的邏輯卷,則創(chuàng)建卷組時(shí)需要指定更大的PE烤礁。在Red Hat Enterprise Linux AS 4中PE大小范圍為8 KB 到 16GB讼积,并且必須總是 2 的倍數(shù)。
vgcreate -s 16M lvm_vg /dev/sdb{5,6,7,8} 使用-s來指定PE大小16 M X 65536=1T
- 創(chuàng)建LV
[zkml@test ~]$ lv #和lv相關(guān)的命令
lvchange lvdisplay lvmchange lvmdump lvmsar lvrename lvscan
lvconvert lvextend lvmconf lvmetad lvreduce lvresize
lvcreate lvm lvmdiskscan lvmsadc lvremove lvs
[zkml@test ~]$ sudo lvcreate -L 12G -n date vg0 #創(chuàng)建lv
Logical volume "date" created
[zkml@test ~]$ sudo lvs #查看lv
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
date vg0 -wi-a----- 12.00g
lv_root vg_test -wi-ao---- 17.51g
lv_swap vg_test -wi-ao---- 2.00g
[zkml@test ~]$ sudo vgs #查看vg
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 15.01g 3.01g
vg_test 1 2 0 wz--n- 19.51g 0
格式化+掛載(修改fstab)跟標(biāo)準(zhǔn)分區(qū)相同
[zkml@test ~]$ sudo mkfs.ext4 /dev/vg0/date
[zkml@test ~]$ sudo mkdir /date
[zkml@test ~]$ sudo mount /dev/vg0/date /date/
[zkml@test ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root 18G 3.0G 14G 19% /
tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 485M 33M 427M 8% /boot
/dev/mapper/vg0-date 12G 158M 12G 2% /date
同卷組一樣脚仔,邏輯卷在創(chuàng)建的過程中也被分成了一塊一塊的空間勤众,這些空間稱為L(zhǎng)E(Logical Extents),在同一個(gè)卷組中鲤脏,LE的大小和PE是相同的们颜,并且一一對(duì)應(yīng)吕朵。
3.2 磁盤大小修改
為了驗(yàn)證磁盤大小修改不會(huì)影響到現(xiàn)有文件,創(chuàng)建測(cè)試文件:
[zkml@test ~]$ cd /date
[zkml@test date]$ sudo mkdir test
[zkml@test date]$ cd test/
[zkml@test test]$ ll
總用量 0
[zkml@test test]$ sudo touch test
[zkml@test test]$ ll
總用量 0
-rw-r--r-- 1 root root 0 8月 2 16:02 test
[zkml@test test]$ sudo vi test
3.2.1 增加分區(qū)的大小
1.)VG分區(qū)還有剩余空間
驗(yàn)證卷組大小vgs擴(kuò)展邏輯卷lvextend擴(kuò)展文件系統(tǒng)大小resize2fs
[zkml@test ~]$ sudo vgs #查看卷組大小是否還有剩余空間
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 15.01g 3.01g
vg_test 1 2 0 wz--n- 19.51g 0
[zkml@test ~]$ sudo lvextend -L +1G /dev/vg0/date #增加lv
Extending logical volume date to 13.00 GiB
Logical volume date successfully resized
[zkml@test ~]$ sudo vgs #查看卷組
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 15.01g 2.01g
vg_test 1 2 0 wz--n- 19.51g 0
[zkml@test ~]$ sudo lvs #查看lv
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
date vg0 -wi-ao---- 13.00g
lv_root vg_test -wi-ao---- 17.51g
lv_swap vg_test -wi-ao---- 2.00g
[zkml@test ~]$ df -Th #驗(yàn)證文件系統(tǒng)
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root ext4 18G 3.0G 14G 19% /
tmpfs tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
/dev/mapper/vg0-date ext4 12G 158M 12G 2% /date
[zkml@test ~]$ sudo resize2fs /dev/vg0/date #增加文件系統(tǒng)
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/date is mounted on /date; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg0/date to 3407872 (4k) blocks.
The filesystem on /dev/vg0/date is now 3407872 blocks long.
[zkml@test ~]$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root ext4 18G 3.0G 14G 19% /
tmpfs tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
/dev/mapper/vg0-date ext4 13G 158M 12G 2% /date
sudo lvextend -l +100%FREE /dev/vg0/date
將vg0所有剩余都擴(kuò)展到date中
2.)VG沒有剩余空間窥突,增加VG空間
驗(yàn)證卷大小vgs擴(kuò)展VG大信!(新的PV)vgextend
[zkml@test ~]$ sudo lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
date vg0 -wi-ao---- 15.01g
lv_root vg_test -wi-ao---- 17.51g
lv_swap vg_test -wi-ao---- 2.00g
[zkml@test ~]$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz--n- 15.01g 0
vg_test 1 2 0 wz--n- 19.51g 0
[zkml@test ~]$ sudo vgextend vg0 /dev/sdb3
Volume group "vg0" successfully extended
[zkml@test ~]$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg0 3 1 0 wz--n- 19.98g 4.98g
vg_test 1 2 0 wz--n- 19.51g 0
3.2.2 減小分區(qū)的大小(要注意減小時(shí)數(shù)據(jù)有可能出現(xiàn)丟失)
剩余的空間一定要大于已經(jīng)使用的空間阻问,否則會(huì)丟失梧税,因此需要做好數(shù)據(jù)備份。格式化是操作一定要慎重
卸載文件系統(tǒng)umount檢查文件系統(tǒng)fsck e2fsck減小文件系統(tǒng) resize2fs減小邏輯卷(lv)lvreduce能減低卷組的大小嗎称近?vgreduce待測(cè)試
[zkml@test ~]$ sudo umount /date/
[zkml@test ~]$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root ext4 18G 3.0G 14G 19% /
tmpfs tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
[zkml@test ~]$ sudo resize2fs -p /dev/vg0/date 6G #這里是減少到6G
請(qǐng)先運(yùn)行 'e2fsck -f /dev/vg0/date'. #需要檢查文件系統(tǒng)
[zkml@test ~]$ sudo e2fsck -f /dev/vg0/date
e2fsck 1.41.12 (17-May-2010)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結(jié)構(gòu)
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg0/date: 13/991232 files (0.0% non-contiguous), 102660/3934208 blocks
[zkml@test ~]$ sudo resize2fs -p /dev/vg0/date 6G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/date to 1572864 (4k) blocks.
Begin pass 2 (max = 32768)
正在重定位塊 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Begin pass 3 (max = 121)
正在掃描inode表 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/vg0/date is now 1572864 blocks long.
[zkml@test ~]$ sudo lvreduce -L 6G /dev/vg0/date
WARNING: Reducing active logical volume to 6.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce date? [y/n]: y
Reducing logical volume date to 6.00 GiB
Logical volume date successfully resized
[zkml@test ~]$ mount /dev/vg0/date /date/
mount: only root can do that
[zkml@test ~]$ sudo mount /dev/vg0/date /date/
[zkml@test ~]$ sudo df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root ext4 18G 3.0G 14G 19% /
tmpfs tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
/dev/mapper/vg0-date ext4 6.0G 152M 5.5G 3% /date
還可以使用如下不需要卸載文件系統(tǒng):使用lvreduce 在使用resize2fs調(diào)整第队。
VG的減小用去掉pv達(dá)到,要想去掉pv必須刨秆,使用lvremove會(huì)出現(xiàn)數(shù)據(jù)丟失情況凳谦。
[zkml@test ~]$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_test lvm2 a-- 19.51g 0
/dev/sdb1 vg0 lvm2 a-- 5.01g 0
/dev/sdb2 vg0 lvm2 a-- 10.00g 0
/dev/sdb3 vg0 lvm2 a-- 4.98g 0
[zkml@test ~]$ sudo umount /date
[zkml@test ~]$ sudo vgreduce vg0 /dev/sdb3 #無法降低vg 因?yàn)閟db3正在使用
Physical volume "/dev/sdb3" still in use
[zkml@test ~]$ sudo umount /date
umount: /date: not mounted
[zkml@test ~]$ df –hT #查看我們文件系統(tǒng)已經(jīng)卸載了
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root ext4 18G 3.0G 14G 19% /
tmpfs tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 ext4 485M 33M 427M 8% /boot
[zkml@test ~]$ sudo lvremove /dev/vg0/date
Do you really want to remove active logical volume date? [y/n]: y
Logical volume "date" successfully removed
[zkml@test ~]$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 vg_test lvm2 a-- 19.51g 0
/dev/sdb1 vg0 lvm2 a-- 5.01g 5.01g
/dev/sdb2 vg0 lvm2 a-- 10.00g 10.00g
/dev/sdb3 vg0 lvm2 a-- 4.98g 4.98g
[zkml@test ~]$ sudo vgreduce vg0 /dev/sdb3 通過這兩步操作我們知道只有pv顯示為剩余才能刪除vg中的pv
Removed "/dev/sdb3" from volume group "vg0"
[zkml@test ~]$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vg0 2 0 0 wz--n- 15.01g 15.01g
vg_test 1 2 0 wz--n- 19.51g 0
[zkml@test ~]$ sudo lvcreate -l +100%FREE -n date vg0
Logical volume "date" created
[zkml@test ~]$ sudo mount /dev/vg0/date /date/
mount: you must specify the filesystem type
[zkml@test date]$ sudo mkfs.ext4 /dev/vg0/date 因?yàn)橹匦赂袷交瘮?shù)據(jù)丟失
[zkml@test date]$ sudo mount /dev/vg0/date /date/
VG可以先減少LV(lvreduce)注意減少的大小,要大于要減少PV的大小衡未,再使用vgreduce減少pv 在使用pvremove移除尸执。如果移除時(shí)候還可以使用pvmove將文件遷移到其他pv中,遷移時(shí)候接受的pv要大于移除的pv缓醋。
所有的減少都需要注意如下:
總PV大小>=總的VG>=總的LV>=文件系統(tǒng)中的大小
在使用resize2fs是減小文件系統(tǒng)到多大如失,不是減小多大。如果想指定減少多大時(shí)候改衩,可以先使用lvreduce 再使用resize2fs 直接調(diào)整岖常。
3.3 Swap大小修改
- 1. 關(guān)閉已經(jīng)設(shè)置的swap:
[root@localhost ~]# swapon -s #查看swap設(shè)置
Filename Type Size Used Priority
/dev/dm-1 partition 2097144 0 -1
[root@localhost ~]# free –m #查看內(nèi)存和swap使用情況
total used free shared buffers cached
Mem: 1877 1504 373 0 12 51
-/+ buffers/cache: 1440 436
Swap: 2047 0 2047
[root@localhost ~]# swapoff /dev/dm-1 #關(guān)閉swap,后面的參數(shù)是我們使用swapon –s查看到的Filename
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 1877 1502 374 0 12 51
-/+ buffers/cache: 1439 438
Swap: 0 0 0
- 2. 增大swap大小
[root@localhost ~]# swapon /dev/dm-1
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/home/swap file 1023992 0 -1
/dev/dm-1 partition 2097144 0 -2
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 1877 1804 72 0 7 339
-/+ buffers/cache: 1456 420
Swap: 3047 0 3047
[root@localhost ~]# dd if=/dev/zero of=/home/swap1 bs=1024 count=1024000
記錄了1024000+0 的讀入
記錄了1024000+0 的寫出
1048576000字節(jié)(1.0 GB)已復(fù)制葫督,2.48002 秒,423 MB/秒
[root@localhost ~]# mkswap /home/swap1
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=927ff5be-7def-4578-a512-01e5bf7605bb
[root@localhost ~]# swapon /home/swap1
[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 1877 1806 70 0 7 339
-/+ buffers/cache: 1459 418
Swap: 4047 0 4047
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/home/swap file 1023992 0 -1
/dev/dm-1 partition 2097144 0 -2
/home/swap1 file 1023992 0 -3
- 縮小Swap分區(qū)
lvreduce命令收縮邏輯卷板惑。
[root@getlnx14uat ~]# lvreduce -L 8G /dev/mapper/VolGroup00-LogVol01
WARNING: Reducing active logical volume to 8.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol01? [y/n]: y
Reducing logical volume LogVol01 to 8.00 GB
Logical volume LogVol01 successfully resized
[root@getlnx14uat ~]# mkswap /dev/mapper/VolGroup00-LogVol01 #格式化
Setting up swapspace version 1, size = 8589930 kB
[root@getlnx14uat ~]# swapon -s
Filename Type Size Used Priority
[root@getlnx14uat ~]# swapon /dev/mapper/VolGroup00-LogVol01
[root@getlnx14uat ~]# swapon -s
Filename Type Size Used Priority
/dev/mapper/VolGroup00-LogVol01 partition 8388600 0 -1
以上所有的操作都需要在fstab中增加swap的條目(如下)橄镜,否則重啟機(jī)器都會(huì)失效
/dev/mapper/vg_test-lv_swap swap swap defaults 0 0
3.4 刪除LVM
umount 文件系統(tǒng)——移除LV(lvremove)—— 移除VG(vgremove)——移除PV(pvremove)
3.5 LVM快照
左圖為最初建立系統(tǒng)快照區(qū)的狀況,LVM 會(huì)預(yù)留一個(gè)區(qū)域 (左圖的左側(cè)三個(gè)PE 區(qū)塊) 作為數(shù)據(jù)存放處冯乘。此時(shí)快照區(qū)內(nèi)并沒有任何數(shù)據(jù)洽胶,而快照區(qū)與系統(tǒng)區(qū)共享所有的PE 數(shù)據(jù), 因此你會(huì)看到快照區(qū)的內(nèi)容與文件系統(tǒng)是一模一樣的裆馒。等到系統(tǒng)運(yùn)作一陣子后姊氓,假設(shè)A 區(qū)域的數(shù)據(jù)被更動(dòng)了 (上面右圖所示),則更動(dòng)前系統(tǒng)會(huì)將該區(qū)域的數(shù)據(jù)移動(dòng)到快照區(qū)喷好,所以在右圖的快照區(qū)被占用了一塊PE 成為A翔横,而其他B 到I 的區(qū)塊則還是與文件系統(tǒng)共享!
lvcreate -L 80M -s -n lv1snap /dev/vg0/date (-s用來創(chuàng)建快照)
說明:為/dev/vg0/date 創(chuàng)建一個(gè)大小為80M梗搅,名稱為lv1snap 的快照
將剛才創(chuàng)建的快照掛載查看:mnt/lv1 和/mnt/snapshot 是一模一樣的禾唁。
對(duì)snapshot 里的資料進(jìn)行打包備份效览,準(zhǔn)備還原
卸載并移除snapshot分區(qū)
卸載并格式化/mnt/lv1,清空數(shù)據(jù)
恢復(fù)數(shù)據(jù)
對(duì)lv1的修改量不能超過快照的大小丐枉,由于原始數(shù)據(jù)會(huì)被搬移到快照區(qū),如果你的快照區(qū)不夠大掘托,若原始資料被更動(dòng)的實(shí)際數(shù)據(jù)量比快照區(qū)大瘦锹,那么快照區(qū)當(dāng)然容納不了,這時(shí)候快照功能會(huì)失效闪盔!
4. 超大磁盤(大于2TB)
entOS 6.x 無法使用fdisk分區(qū)大于2TB的磁盤弯院。原因在于MBR分區(qū)表只支持2T磁盤。使用parted命令將MBR分區(qū)表锭沟,改為GPT分區(qū)表抽兆。如果linux沒有parted命令,可以yum install parted
lsblk 查看磁盤分區(qū)情況:
[zkml@test ~]$ sudo parted /dev/sdc
GNU Parted 2.1
使用 /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt #轉(zhuǎn)換未GPT
警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to continue?
是/Yes/否/No? yes
(parted) mkpart #分區(qū)
分區(qū)名稱族淮? []? data
文件系統(tǒng)類型辫红? [ext2]? ext4
起始點(diǎn)? 0
結(jié)束點(diǎn)祝辣? -1 表示整塊磁盤贴妻,如果需要其他大小可以設(shè)置其他值,1代表1000K 根據(jù)要分區(qū)大小設(shè)置蝙斜。
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放棄/Cancel? I
(parted) P #查看分區(qū)情況
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 標(biāo)志
1 17.4kB 2199GB 2199GB data
(parted) quit
信息: You may need to update /etc/fstab.
[zkml@test ~]$ sudo mkfs.ext4 /dev/sdc1 #格式化
mke2fs 1.41.12 (17-May-2010)
文件系統(tǒng)標(biāo)簽=
操作系統(tǒng):Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
134217728 inodes, 536870407 blocks
26843520 blocks (5.00%) reserved for the super user
第一個(gè)數(shù)據(jù)塊=0
Maximum filesystem blocks=4294967296
16384 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 39 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[zkml@test ~]$ sudo mount /dev/sdc1 /test2/ #掛載
[zkml@test ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_test-lv_root 18G 2.9G 14G 18% /
tmpfs 1.9G 84K 1.9G 1% /dev/shm
/dev/sda1 485M 33M 427M 8% /boot
/dev/sdc1 2.0T 199M 1.9T 1% /test2
[zkml@test ~]$ sudo umount /test2/
[zkml@test ~]$ sudo parted /dev/sdc
(parted) rm #刪除
分區(qū)編號(hào)名惩? 1
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdc: 2199GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name 標(biāo)志
(parted)
Parted中其他命令,根據(jù)需要學(xué)習(xí)如何使用即可孕荠。mkpart和mkpartfs 都可以分區(qū)后面帶有格式化娩鹉,可以直接掛在使用。前面的需要格式化后才能掛載稚伍。Toggle可以用來設(shè)置lvm弯予。
特別注意:
CentOS 自帶的 e2fsprogs 版本為1.41.12較低,無法創(chuàng)建16TB以上的文件系統(tǒng)个曙,手工下載最新的e2fsprogs源碼包锈嫩,進(jìn)行編譯安裝,然后使用mkfs.ext4 命令進(jìn)行磁盤格式化垦搬。
關(guān)于磁盤管理還有軟raid呼寸,后面學(xué)習(xí)后再補(bǔ)充