linux應(yīng)用1——磁盤管理

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è)備識(shí)別

② 設(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í)別。
fstab

如果不重啟系統(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)有磁盤使用情況


查看文件系統(tǒng)情況

fdisk –l 可以查看到系統(tǒng)中識(shí)別磁盤和分區(qū)情況


磁盤識(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ū)抓艳,跳過這一步直接格式化触机。


分區(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

UUID

fstab

如果省略第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


LVM
  • 創(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
pvdisplay

pvcreate

當(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)整第队。


lvreduce+resize2fs

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
  1. 縮小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快照

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ū)
卸載并移除snapshot分區(qū)

卸載并格式化/mnt/lv1,清空數(shù)據(jù)
卸載并格式化/mnt/lv1荡短,清空數(shù)據(jù)

恢復(fù)數(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ū)情況:


lsblk
[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)
paeted相關(guān)命令

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ǔ)充

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市猴贰,隨后出現(xiàn)的幾起案子对雪,更是在濱河造成了極大的恐慌,老刑警劉巖糟趾,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慌植,死亡現(xiàn)場(chǎng)離奇詭異甚牲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蝶柿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門丈钙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人交汤,你說我怎么就攤上這事雏赦。” “怎么了芙扎?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵星岗,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我戒洼,道長(zhǎng)俏橘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任圈浇,我火速辦了婚禮寥掐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘磷蜀。我一直安慰自己召耘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布褐隆。 她就那樣靜靜地躺著污它,像睡著了一般。 火紅的嫁衣襯著肌膚如雪庶弃。 梳的紋絲不亂的頭發(fā)上衫贬,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音歇攻,去河邊找鬼祥山。 笑死,一個(gè)胖子當(dāng)著我的面吹牛掉伏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澳窑,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼斧散,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了摊聋?” 一聲冷哼從身側(cè)響起鸡捐,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麻裁,沒想到半個(gè)月后箍镜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體源祈,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年色迂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了香缺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡歇僧,死狀恐怖图张,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诈悍,我是刑警寧澤祸轮,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站侥钳,受9級(jí)特大地震影響适袜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舷夺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一苦酱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧冕房,春花似錦躏啰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至详拙,卻和暖如春帝际,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饶辙。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工蹲诀, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弃揽。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓脯爪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親矿微。 傳聞我的和親對(duì)象是個(gè)殘疾皇子痕慢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361