首页 > 代码库 > linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)

linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)

2016-08-26:

授课内容:

1、SWAP交换分区的创建

2、dd命令的使用

3、设定文件系统配额

4、设定和管理软RAID设备

5、配置逻辑卷

1、swap

(1)SWAP分区:模拟内存,当物理内存不足时,进程需要内存资源是,内存会把一部分没有在用的进程分页挪到硬盘的模拟内存中,腾出空间被现在需要使用内存资源的进程

即其作用是可以允许内存过载使用,windows系统也有类似的机制,由于虚拟内存空间是建立在硬盘之上,所以其速度和性能会大打折扣,所以适合临时使用

(2)创建SWAP分区:

相关命令:mkswap、swapon

示例:

[19:42 root@Centos6.8/usr/local/http2]# fdisk /dev/sda 【创建分区】
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): n
First cylinder (9460-26109, default 9460): 
Using default value 9460
Last cylinder, +cylinders or +size{K,M,G} (9460-26109, default 26109): +2G
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): L
0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
f  W95 Ext‘d (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 82 【选择swap模式】
Changed system type of partition 6 to 82 (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.
[19:43 root@Centos6.8/usr/local/http2]# mkswap /dev/sda6 【格式化交换分区】
Setting up swapspace version 1, size = 2100024 KiB
no label, UUID=ae9d3eee-1908-47fe-9b32-2a777d0b28b1
[19:43 root@Centos6.8/usr/local/http2]# swapon -a 【挂载swap】
[19:44 root@Centos6.8/usr/local/http2]# free 【查看已经挂载成功】
total       used       free     shared    buffers     cached
Mem:       1907300    1059764     847536       1336      65000     724408
-/+ buffers/cache:     270356    1636944
Swap:      4095996          0    4095996
[19:44 root@Centos6.8/usr/local/http2]# cat /proc/swaps 
FilenameTypeSizeUsedPriority
/dev/sda5                               partition40959960-1


2、dd命令的使用;

dd:convert and copy a file,转换并复制文件,与cp命令相似,只是用法格式有不一样,dd复制的是数据流,工作在vfs之下

用法:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#:block size, 复制单元大小 count=#:复制多少个bs

of=file写到所命名的文件而不是到标准输出

if=file从所命名文件读取而不是从标准输入

bs=size指定块大小(既是是ibs也是obs)

ibs=size一次读size个byte

obs=size 一次写size个byte

cbs=size 一次转化size个byte

skip=blocks从开头忽略blocks个ibs大小的块

seek=blocks从开头忽略blocks个obs大小的块

count=n只拷贝n个记录

cbs=size 一次转换多少byte

说明:

磁盘拷贝:

dd if=/dev/sda of=/dev/sdb

备份MBR:

dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破坏MBR中的bootloader:

dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?

dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc

备份:

dd if=/dev/sdx of=/dev/sdy

将本地的/dev/sdx整盘备份到/dev/sdy

dd if=/dev/sdx of=/path/to/image

将/dev/sdx全盘数据备份到指定路径的image文件

dd if=/dev/sdx | gzip >/path/to/image.gz

备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径

恢复:

dd if=/path/to/image of=/dev/sdx

将备份文件恢复到指定盘

gzip -dc /path/to/image.gz | dd of=/dev/sdx

将压缩的备份文件恢复到指定盘

3、文件系统配额:以文件系统(分区)为单位启用

分区配额管理:在一个分区内进行管理

(1)、启用磁盘配额:

分区挂载选项(在fstab修改挂载属性:usrquota,grpquota):

usrquota:控制单个用户

grpquota:控制组用户

(2)、创建配额数据库

quotacheck -cug /filesystem 成功后会在文件系统有两个aquota的文件

[root@localhost home]# ll
total 36
-rw-------. 1 root root  7168 Aug 26 15:04 aquota.group
-rw-------. 1 root root  7168 Aug 26 15:04 aquota.user
drwxr-xr-x. 4 hill root  4096 Aug 26 15:00 hill
drwx------. 2 root root 16384 Aug 26 14:50 lost+found
[root@localhost home]# getenforce
Enforcing
[root@localhost home]# setenforce 0
[root@localhost home]# getenforce
Permissive



(3)、启用

quotaon /filesystem

(4)、设置用户配额:

edqupta USERNAME

技术分享                    根据文件所有者来定义用户使用了多大

 

技术分享

(5)、查看、测试

[root@localhost home]# repquota -a
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --  141468       0       0              4     0     0       
hill      --      36   50000   60000              9     0     0



4、RAID:(raid的最小存储单位是chunk,即每次平均分到物理磁盘的大小)

(1)RAID:Redundant Array of Inexpensive Disks:廉价磁盘冗余阵列

   :Redundant Array of Independent Disks:独立磁盘冗余阵列

【注意】:由于在用户层面看来,raid组成一块磁盘,所以要对磁盘进行分区、格式化才能使用

(2)RAID级别:仅代表磁盘组织方式不同,没有上下之分;

0: 条带

性能提升: 读,写

冗余能力(容错能力): 无

空间利用率:nS

至少2块盘

1: 镜像

性能表现:写性能下降,读性能提升

冗余能力:有

空间利用率:1/2

至少2块盘

2

3

4: 

5: 带基偶校验位

性能表现:读,写提升

冗余能力:有

空间利用率:(n-1)/n

至少需要3块

10:

性能表现:读、写提升

冗余能力:有

空间利用率:1/2

至少需要4块

01:

性能表现:读、写提升

冗余能力:有

空间利用率:1/2

至少需要4块

50:

性能表现:读、写提升

冗余能力:有

空间利用率:(n-2)/n

至少需要6块

jbod:

性能表现:无提升

冗余能力:无

空间利用率:100%

至少需要2块

(3)实现RAID方式:

硬RAID(实际生产环节):

外接专门的存储机箱,机箱里接上多个硬盘

BIOS中进行设置

软RAID(系统演示环节,并不建议在生产环节使用):mdadm

RAID设备(软raid)可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等等

(4)软件raid

命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>

模式:

创建:-C

装配: -A

监控: -F

管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>: 任意块设备

-C: 创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小

-x #: 指明空闲盘的个数

-D:显示raid的详细信息;

mdadm -D /dev/md#

管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

观察md的状态:

cat /proc/mdstat

使用mdadm创建并定义RAID设备

#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

用文件系统对每个RAID设备进行格式化

#mke2fs -j /dev/md0

测试RAID设备

使用mdadm检查RAID设备的状况

#mdadm --detail|D /dev/md0

增加新的成员

#mdadm –G /dev/md0 –n4 -a /dev/sdf1

模拟磁盘故障

#mdadm /dev/md0 -f /dev/sda1

移除磁盘

#mdadm /dev/md0 –r /dev/sda1

从软件RAID磁盘修复磁盘故障

替换出故障的磁盘然后开机

在备用驱动器上重建分区

#mdadm /dev/md0 -a /dev/sda1

5、逻辑卷管理器(LVM)【最小的存储单位PE(Physical Extend)】

(1)允许在多个物理设备间重新组织文件系统

LVM可以弹性的更改LVM的容量:通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量

(2)LVM管理分为三层来管理:

 

LV(logical volume)

VG(volume group)

        PV(physical volume)                                        

                                                                        技术分享

 技术分享

创建LV逻辑卷的过程:要先把物理磁盘创建为物理卷PV,再由多个物理卷创建为卷组VG(相当于扩展分区的概念,不能直接使用),再在VG卷组上创建需要的逻辑卷LV

(3)相关命令(相似):

PV:pvcreate、pvremove、pvmove、pvextend、pvdisplay

VG:vgcreate、vgreduce、vgextend、vgdisplay

LV:lvcreate、lvremove、lvextend、lvdisplay

pv管理工具

显示pv信息

pvs:简要pv信息显示

pvdisplay

   创建pv

pvcreate /dev/DEVICE

vg管理工具

显示卷组

vgs

vgdisplay

创建卷组

vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

管理卷组

vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

删除卷组

先做pvmove,再做vgremove

lv管理工具

显示逻辑卷

lvs

Lvdisplay

创建逻辑卷

lvcreate-L #[mMgGtT] -n NAME VolumeGroup

删除逻辑卷

lvremove/dev/VG_NAME/LV_NAME

重设文件系统大小

fsadm[options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

实例:创建LV过程:

简述:    一、分区

fdisk /dev/sda t  8e

partx -a /dev/sda

lsblk

2、

                         pvcreate  /dev/sd{a7,b}

pvs

pvdisplay 

3、

                        vgcreate vg0 /dev/sd{a7,b}

vgs;pvs;pvdisplay;vgdisplay 

4、lvcreate  -n lv0 -L 10G vg0 

5、mkfs.ext4 /dev/vg0/lv0 

6、

                        vi /etc/fstab 

mkdir /mnt/lv0;mount -a

        

                   二、扩展逻辑卷lv(可以在没有卸载的情况下进行扩展)

                        1、lvdisplay

                        2、lvextend -L +1G /dev/vg0/lv0

                        3、resize2fs /dev/vg0/lv0

                        4、lvdisplay

                   三、扩展卷组VG

                        1、vgdisplay

                        2、pvcreat /dev/sdb

                        3、vgextend vg0 /dev/sdb

                   四、缩减逻辑卷

注意:1、不能在线缩减,得先卸载;

   2、确保缩减后的空间大小依然能存储原有的所有数据;

   3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;

df -lh

umount 

e2fsck -f

resize2fs /PATH/TO/PV 3G

lvreduce -L [-]# /PATH/TO/LV

mount

   

1、创建LV

[16:18 root@Centos6.8~]# fdisk /dev/sda
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): t
Partition number (1-8): 8
Hex code (type L to list codes): L
 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      3c  PartitionMagic  83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       40  Venix 80286     84  OS/2 hidden C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended        42  SFS             86  NTFS volume set da  Non-FS data    
 6  FAT16           4d  QNX4.x          87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM      93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext‘d (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 8e
Changed system type of partition 8 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-8): 7
Hex code (type L to list codes): 8e
Changed system type of partition 7 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-8): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x000e82d5
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400        8950    20480000   83  Linux
/dev/sda4            8950       26109   137829376    5  Extended
/dev/sda5            8950        9460     4096000   82  Linux swap / Solaris
/dev/sda6            9460        9721     2100029   8e  Linux LVM
/dev/sda7            9722        9983     2104483+  8e  Linux LVM
/dev/sda8            9984       10376     3156741   8e  Linux LVM
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.
[16:18 root@Centos6.8~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
BLKPG: Device or resource busy
error adding partition 7
BLKPG: Device or resource busy
error adding partition 8
[16:19 root@Centos6.8~]# pvdisplay 
[16:19 root@Centos6.8~]# pvcreate /dev/sda{6,7,8}
  Physical volume "/dev/sda6" successfully created
  Physical volume "/dev/sda7" successfully created
  Physical volume "/dev/sda8" successfully created
[16:20 root@Centos6.8~]# pvdisplay 
  "/dev/sda6" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda6
  VG Name               
  PV Size               2.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               OcC0N8-Ojcf-6oPq-gvaS-Dny2-JVs4-Lds51R
   
  "/dev/sda7" is a new physical volume of "2.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda7
  VG Name               
  PV Size               2.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               amnydg-48Qm-tIZs-ZXnp-ngWA-4Fuk-6k53TP
   
  "/dev/sda8" is a new physical volume of "3.01 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda8
  VG Name               
  PV Size               3.01 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               mir8t7-yoTX-1pAD-A6bA-Gl4U-JYLe-pSmPSc
   
[16:20 root@Centos6.8~]# vgdisplay 
[16:20 root@Centos6.8~]# vgcreate vg0 /dev/sda{6,7,8}
  Volume group "vg0" successfully created
[16:20 root@Centos6.8~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               7.01 GiB
  PE Size               4.00 MiB
  Total PE              1795
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1795 / 7.01 GiB
  VG UUID               OXd09k-uQ7C-BMNr-gkeY-HeQv-NJnP-H9WWxQ
   
[16:20 root@Centos6.8~]# lvdisplay 
[16:21 root@Centos6.8~]# lvcreate -n lv0 -L 5G vg0
  Logical volume "lv0" created.
[16:21 root@Centos6.8~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                32AMUw-xgxw-ejJ2-rps1-fm0e-feYw-OoTPS8
  LV Write Access        read/write
  LV Creation host, time Centos6.8, 2016-08-27 16:21:48 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[16:22 root@Centos6.8~]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               7.01 GiB
  PE Size               4.00 MiB
  Total PE              1795
  Alloc PE / Size       1280 / 5.00 GiB
  Free  PE / Size       515 / 2.01 GiB
  VG UUID               OXd09k-uQ7C-BMNr-gkeY-HeQv-NJnP-H9WWxQ
   
[16:25 root@Centos6.8~]# mke2fs -j /dev/vg0/lv0 
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 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
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[16:26 root@Centos6.8~]# mkdir /mnt/lv0
[16:26 root@Centos6.8~]# mount /dev/vg0/lv0 /mnt/lv0/
[16:26 root@Centos6.8~]# mo
modem-manager          mogrify                mount.cifs             mountpoint             mozilla-plugin-config
modinfo                montage                mount.fuse             mountstats             
modprobe               more                   mount.nfs              mount.tmpfs            
modutil                mount                  mount.nfs4             mousetweaks

2、 扩展逻辑卷(要在挂载状态执行resize2fs)

[16:28 root@Centos6.8/mnt/lv0]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                32AMUw-xgxw-ejJ2-rps1-fm0e-feYw-OoTPS8
  LV Write Access        read/write
  LV Creation host, time Centos6.8, 2016-08-27 16:21:48 +0800
  LV Status              available
  # open                 1
  LV Size                5.00 GiB
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[16:36 root@Centos6.8/mnt/lv0]# lvextend -L +1G /dev/vg0/lv0 
  Size of logical volume vg0/lv0 changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
  Logical volume lv0 successfully resized.
[16:36 root@Centos6.8/mnt/lv0]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                32AMUw-xgxw-ejJ2-rps1-fm0e-feYw-OoTPS8
  LV Write Access        read/write
  LV Creation host, time Centos6.8, 2016-08-27 16:21:48 +0800
  LV Status              available
  # open                 1
  LV Size                6.00 GiB
  Current LE             1536
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[16:36 root@Centos6.8/mnt/lv0]# resize2fs /dev/vg0/lv0 
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg0/lv0 is mounted on /mnt/lv0; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg0/lv0 to 1572864 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 1572864 blocks long.
[16:37 root@Centos6.8/mnt/lv0]# df
Filesystem          1K-blocks    Used Available Use% Mounted on
/dev/sda2            50264772 4865484  42839288  11% /
tmpfs                  953648      72    953576   1% /dev/shm
/dev/sda1              194241   39020    144981  22% /boot
/dev/sda3            20027260   44996  18958264   1% /testdir
/dev/mapper/vg0-lv0   6192704  141436   5736708   3% /mnt/lv0


3、扩展卷组

[16:58 root@Centos6.8/mnt/lv0]# pvcreate /dev/sda9
  Physical volume "/dev/sda9" successfully created
[16:58 root@Centos6.8/mnt/lv0]# vgextend vg0 /dev/sda9
  Volume group "vg0" successfully extended
[16:58 root@Centos6.8/mnt/lv0]# vgdisplay 
  --- Volume group ---
  VG Name               vg0
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               9.02 GiB
  PE Size               4.00 MiB
  Total PE              2308
  Alloc PE / Size       1536 / 6.00 GiB
  Free  PE / Size       772 / 3.02 GiB
  VG UUID               OXd09k-uQ7C-BMNr-gkeY-HeQv-NJnP-H9WWxQ

4、缩减逻辑卷

没有做文件系统检测和resize2fs,直接缩减,会使原来逻辑卷的数据损坏:

[17:28 root@Centos6.8~]# ll /mnt/lv0/
total 20
-rw-rw-r--. 1 hill hill     0 Aug 27 17:23 f1
drwx------. 2 root root 16384 Aug 27 16:26 lost+found
drwxr-xr-x. 2 hill hill  4096 Aug 27 17:24 pam.d
[19:00 root@Centos6.8~]# umount /mnt/lv0/
[19:00 root@Centos6.8~]# lvreduce -L 3G /dev/vg0/lv0 
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/lv0? [y/n]: y
  Size of logical volume vg0/lv0 changed from 7.00 GiB (1792 extents) to 3.00 GiB (768 extents).
  Logical volume lv0 successfully resized.
[19:05 root@Centos6.8~]# cd /mnt/lv0/
[19:05 root@Centos6.8/mnt/lv0]# ll
ls: cannot access pam.d: Input/output error
total 16
-rw-rw-r--. 1 hill hill     0 Aug 27 17:23 f1
drwx------. 2 root root 16384 Aug 27 16:26 lost+found
d?????????? ? ?    ?        ?            ? pam.d
[19:05 root@Centos6.8/mnt/lv0]# cd pam.d 
-bash: cd: pam.d: Input/output error
[19:05 root@Centos6.8/mnt/lv0]#



正确步骤:

[19:20 root@Centos6.8~]# umount /mnt/lv0/ #先卸载
[19:21 root@Centos6.8~]# e2fsck -f /dev/vg0/lv0 #对文件系统进行强制检测
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 12/327680 files (0.0% non-contiguous), 38512/1310720 blocks
[19:21 root@Centos6.8~]# resize2fs /dev/vg0/lv0 3G #物理先调整文件系统大小
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/vg0/lv0 to 786432 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 786432 blocks long.
[19:22 root@Centos6.8~]# lvdisplay  #查看缩减前的LV大小
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                32AMUw-xgxw-ejJ2-rps1-fm0e-feYw-OoTPS8
  LV Write Access        read/write
  LV Creation host, time Centos6.8, 2016-08-27 16:21:48 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[19:22 root@Centos6.8~]# lvreduce -L 3G /dev/vg0/lv0  #缩减LV大小
  WARNING: Reducing active logical volume to 3.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg0/lv0? [y/n]: y
  Size of logical volume vg0/lv0 changed from 5.00 GiB (1280 extents) to 3.00 GiB (768 extents).
  Logical volume lv0 successfully resized.
[19:22 root@Centos6.8~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg0/lv0
  LV Name                lv0
  VG Name                vg0
  LV UUID                32AMUw-xgxw-ejJ2-rps1-fm0e-feYw-OoTPS8
  LV Write Access        read/write
  LV Creation host, time Centos6.8, 2016-08-27 16:21:48 +0800
  LV Status              available
  # open                 0
  LV Size                3.00 GiB
  Current LE             768
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
[19:23 root@Centos6.8~]# mount /dev/vg0/lv0 /mnt/lv0/ #重新挂载
[19:23 root@Centos6.8~]# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda2             48G  4.7G   41G  11% /
tmpfs                932M   72K  932M   1% /dev/shm
/dev/sda1            190M   39M  142M  22% /boot
/dev/sda3             20G   44M   19G   1% /testdir
/dev/mapper/vg0-lv0  3.0G   69M  2.8G   3% /mnt/lv0
[19:24 root@Centos6.8~]# ll /mnt/lv0/  #文件正常
total 20
-rw-r--r--. 1 root root    28 Aug 27 19:12 f1
drwx------. 2 root root 16384 Aug 27 19:12 lost+found


本文出自 “6638225” 博客,转载请与作者联系!

linux基础学习-第十五天 磁盘管理(SWAP、dd、quota、RAID、LVM)