linux应用1——磁盘管理

1. Linux磁盘管理

磁盘作为计算机系统最重要的设备,操作系统、数据等等都要存储在其中,因为磁盘管理的好坏对整个系统至关重要。Linux系统下将磁盘作为一个文件管理,放置在/dev目录下。
磁盘是块设备:block ,存取单位“块”。
磁盘设备的设备文件命名:/dev/DEV_FILE
不同磁盘标识:a-z,aa,ab…例如/dev/sda, /dev/sdb, ... /dev/sdaa,/dev/sdab...
同一设备上的不同分区:1,2, .../dev/sda1, /dev/sda5
① 设备识别
在liunx系统要能看到这个磁盘设备,才能进行下一步操作。fdsik -l

设备识别

② 设备分区
在识别后使用fdisk或者其他分区工具。分区后可以创建PV、VG和LV
当然标准分区可以不创建PV,也可以不进行分区,直接整块磁盘进行格式化。(暂未找到这样操作对磁盘是否有影响。
③ 文件系统类型格式化
mfs.ext4(ext3,2,ext4dev)格式化成应的系统格式
格式化

④ 在/etc/fstab 文件中创建条目
在fstab中写入,系统启动时添加分区和文件系统挂载条目。
挂载分区(设备) 文件挂载点 分区格式(文件系统类型)挂载选项 dump和fsck
defaults: 所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser, 和 async
fstab的第五列是表示dump选项,dump工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略,事实上,大多数的dump设置都是0。而第六列是fsck选项,fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若文件系统无需在启动时扫描检查,则设置该字段为0。
uuid是设备唯一标识符,在多块磁盘时候磁盘顺序可能会在启动时变化,可以考虑使用uuid识别。
fstab

如果不重启系统,可以使用mount –a
⑤ mount 挂载新的文件系统
mount临时手动挂载文件系统 mount /dev/sda1 /home/test
详细使用可以参考mount

2. Linux磁盘挂载(标准分区)

关于磁盘分区可以分为系统安装和安装后两种情况。这里主要讨论系统安装后新加的磁盘如何分区?分为以下几步:
1.)查看现有磁盘情况
df –hT看到现有磁盘使用情况


查看文件系统情况

fdisk –l 可以查看到系统中识别磁盘和分区情况


磁盘识别和分区

2.)磁盘分区
[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 #主分区
Partition number (1-4): 1 #第一个分区
First cylinder (1-2610, default 1):  #磁盘开始位置
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): #可以填写+10G分区大小
Using default value 2610

Command (m for help): t #可以修改分区系统类型ID 83标准分区 8e lvm分区。默认标准分区可以不操作
Selected partition 1
Hex code (type L to list codes): 
Hex code (type L to list codes): 83

Command (m for help): w #保存分区信息
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

以上就是分区后并保存分区信息的情况,有的会在最后看到reboot字样需要重启分区表才能生效。如果不重启可以执行partprobe,重新读取分区。
如果是整块磁盘用来做一个完整的使用,也可以不分区,跳过这一步直接格式化。


分区情况

如果直接格式化使用fdisk –l 看不到分区情况的。
3.)磁盘格式化


格式化命令

使用对应的格式化命令格式化。如果不格式化挂载报错
未格式化
[zkml@test ~]$ mkfs.ext4 /dev/sdb1  ##格式化
mke2fs 1.41.12 (17-May-2010)
mkfs.ext4: 权限不够 while trying to determine filesystem size
[zkml@test ~]$ sudo mkfs.ext4 /dev/sdb1 
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统: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
第一个数据块=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进行挂载,此时挂载只是临时性,如果重启会丢失。
5.)fstab创建条目,保证系统重启磁盘挂载生效

#
# /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

关于每个参数含义参考上文。这里建议使用uuid

UUID

fstab

如果省略第4步,直接编辑fstab 不重启情况下可以使用mount –a
6.)分区删除

查看分区情况后,先取消挂载,在删除分区,再删除fstab条目
[zkml@test ~]$ umount /dev/sdb1  #卸载挂载文件 权限问题
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 #管理分区

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  #查看帮助中删除分区
   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 #删除分区,因为此硬盘只有一个分区直接删除
Selected partition 1 

Command (m for help): w #保存分区修改情况
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 磁盘挂载

操作步骤查看磁盘情况和标准分区一样。在磁盘分区步骤中,修改如下地方。
Command (m for help): t #可以修改分区系统类型ID 83标准分区 8e lvm分区。默认标准分区可以不操作
Selected partition 1
Hex code (type L to list codes):
Hex code (type L to list codes): 8e


LVM
  • 创建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). #当对sdb磁盘分区后不再单独作为一个分区。
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
[zkml@test ~]$ sudo pvs #查看PV情况 简化的 可以使用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

当对sdb重新分区后,可以看到sdb的pv还是存在。当我们重新构建pv后不再存在

  • 创建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 #创建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 

如果不创建VG,在pv上面直接格式化使用,那么和标准分区是一样的。
当多个物理卷组合成一个卷组后时,LVM会在所有的物理卷上做类似格式化的工作,将每个物理卷切成一块一块的空间,这一块一块的空间就称为PE(Physical Extent ),它的默认大小是4MB。
由于受内核限制的原因,一个逻辑卷(Logic Volume)最多只能包含65536个PE(Physical Extent),所以一个PE的大小就决定了逻辑卷的最大容量,4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷,则创建卷组时需要指定更大的PE。在Red Hat Enterprise Linux AS 4中PE大小范围为8 KB 到 16GB,并且必须总是 2 的倍数。
vgcreate -s 16M lvm_vg /dev/sdb{5,6,7,8} 使用-s来指定PE大小16 M X 65536=1T

  • 创建LV
[zkml@test ~]$ lv #和lv相关的命令
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 #创建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)跟标准分区相同
[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

同卷组一样,逻辑卷在创建的过程中也被分成了一块一块的空间,这些空间称为LE(Logical Extents),在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

3.2 磁盘大小修改

为了验证磁盘大小修改不会影响到现有文件,创建测试文件:

[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 增加分区的大小

1.)VG分区还有剩余空间
验证卷组大小vgs扩展逻辑卷lvextend扩展文件系统大小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 #验证文件系统
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  #增加文件系统
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所有剩余都扩展到date中
2.)VG没有剩余空间,增加VG空间
验证卷大小vgs扩展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 减小分区的大小(要注意减小时数据有可能出现丢失)

剩余的空间一定要大于已经使用的空间,否则会丢失,因此需要做好数据备份。格式化是操作一定要慎重
卸载文件系统umount检查文件系统fsck e2fsck减小文件系统 resize2fs减小逻辑卷(lv)lvreduce能减低卷组的大小吗?vgreduce待测试

[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
请先运行 'e2fsck -f /dev/vg0/date'. #需要检查文件系统
[zkml@test ~]$ sudo e2fsck -f /dev/vg0/date
e2fsck 1.41.12 (17-May-2010)
第一步: 检查inode,块,和大小
第二步: 检查目录结构
第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

还可以使用如下不需要卸载文件系统:使用lvreduce 在使用resize2fs调整。


lvreduce+resize2fs

VG的减小用去掉pv达到,要想去掉pv必须,使用lvremove会出现数据丢失情况。

[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 因为sdb3正在使用
  Physical volume "/dev/sdb3" still in use
[zkml@test ~]$ sudo umount /date
umount: /date: not mounted
[zkml@test ~]$ 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
[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 因为重新格式化数据丢失
[zkml@test date]$ sudo mount /dev/vg0/date /date/

VG可以先减少LV(lvreduce)注意减少的大小,要大于要减少PV的大小,再使用vgreduce减少pv 在使用pvremove移除。如果移除时候还可以使用pvmove将文件迁移到其他pv中,迁移时候接受的pv要大于移除的pv。
所有的减少都需要注意如下:

总PV大小>=总的VG>=总的LV>=文件系统中的大小

在使用resize2fs是减小文件系统到多大,不是减小多大。如果想指定减少多大时候,可以先使用lvreduce 再使用resize2fs 直接调整。

3.3 Swap大小修改

  • 1. 关闭已经设置的swap:
[root@localhost ~]# swapon -s #查看swap设置
Filename                Type        Size    Used    Priority
/dev/dm-1                               partition   2097144 0   -1
[root@localhost ~]# free –m #查看内存和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 #关闭swap,后面的参数是我们使用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字节(1.0 GB)已复制,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分区
    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的条目(如下),否则重启机器都会失效
/dev/mapper/vg_test-lv_swap swap swap defaults 0 0

3.4 删除LVM

umount 文件系统——移除LV(lvremove)—— 移除VG(vgremove)——移除PV(pvremove)

3.5 LVM快照

LVM快照

左图为最初建立系统快照区的状况,LVM 会预留一个区域 (左图的左侧三个PE 区块) 作为数据存放处。此时快照区内并没有任何数据,而快照区与系统区共享所有的PE 数据, 因此你会看到快照区的内容与文件系统是一模一样的。等到系统运作一阵子后,假设A 区域的数据被更动了 (上面右图所示),则更动前系统会将该区域的数据移动到快照区,所以在右图的快照区被占用了一块PE 成为A,而其他B 到I 的区块则还是与文件系统共享!
lvcreate -L 80M -s -n lv1snap /dev/vg0/date (-s用来创建快照)
说明:为/dev/vg0/date 创建一个大小为80M,名称为lv1snap 的快照
将刚才创建的快照挂载查看:mnt/lv1 和/mnt/snapshot 是一模一样的。
挂载快照

对snapshot 里的资料进行打包备份,准备还原
打包快照

卸载并移除snapshot分区
卸载并移除snapshot分区

卸载并格式化/mnt/lv1,清空数据
卸载并格式化/mnt/lv1,清空数据

恢复数据
恢复数据

对lv1的修改量不能超过快照的大小,由于原始数据会被搬移到快照区,如果你的快照区不够大,若原始资料被更动的实际数据量比快照区大,那么快照区当然容纳不了,这时候快照功能会失效!

4. 超大磁盘(大于2TB)

entOS 6.x 无法使用fdisk分区大于2TB的磁盘。原因在于MBR分区表只支持2T磁盘。使用parted命令将MBR分区表,改为GPT分区表。如果linux没有parted命令,可以yum install parted
lsblk 查看磁盘分区情况:


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  #转换未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 #分区
分区名称?  []? data                                                      
文件系统类型?  [ext2]? ext4                                              
起始点? 0                                                                
结束点? -1  表示整块磁盘,如果需要其他大小可以设置其他值,1代表1000K 根据要分区大小设置。
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? I
(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  标志
 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)
文件系统标签=
操作系统: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
第一个数据块=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    #删除                                                        
分区编号? 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  标志 
(parted)
paeted相关命令

Parted中其他命令,根据需要学习如何使用即可。mkpart和mkpartfs 都可以分区后面带有格式化,可以直接挂在使用。前面的需要格式化后才能挂载。Toggle可以用来设置lvm。
特别注意:
CentOS 自带的 e2fsprogs 版本为1.41.12较低,无法创建16TB以上的文件系统,手工下载最新的e2fsprogs源码包,进行编译安装,然后使用mkfs.ext4 命令进行磁盘格式化。

关于磁盘管理还有软raid,后面学习后再补充

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,780评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,424评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,397评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,576评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,997评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,945评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,107评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,850评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,625评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,804评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,285评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,613评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,291评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,164评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,963评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,096评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,886评论 2 278