Linux下磁盘操作小结(分区、物理卷、逻辑卷组创建以及修改扩容)

创建逻辑卷组

将挂靠的硬盘分区

  • 新加一块SCSI硬盘,需要将其分成三个区:
    命令:
    #fdisk /dev/sdb
    进入fdisk模式:
    Command (m for help):p //查看新硬盘的分区
    Command (m for help):n //创建新分区

    可以用m命令来看fdisk命令的内部命令;n命令创建一个新分区;d命令删除一个存在的分区;p命令显示分区列表;t命令修改分区的类型ID号;l命令显示分区ID号的列表;a命令指定启动分区;w命令是将对分区表的修改存盘让它发生作用。

    Command action
    e extended //输入e为创建扩展分区
    p primary partition (1-4) //输入p为创建主分区,这里我们选择p

    Partion number(1-4):1 //第一个扩展分区,按你需求可以最多分4个主分区
    First Cylinder(1-1014,default 1): 1 //第一个主分区起始的磁盘块数
    Last cylindet or +siza or +sizeM or +sizeK: +1024MB //可以是以MB为单位的数字或者以

    磁盘块数,这里我们输入+1024MB表示分区大小为1G。
    这样我们就创建完一个分区,如果要创建更多分区可以照上面的步骤继续创建。

  • 创建完后用w保存分区。
    代码:

    Command (m for help): w

    The partition table has been altered!
    

    Calling ioctl() to re-read partition table.

    Syncing disks.
    

    #partprobe //不用重启可使以上操作生效。

    这样就分区完,我们还要进行格式化
    代码:

    #mkfs.ext3 /dev/sdb1 //如果有多个分区,则分区修改为sdb2这样.。

创建逻辑卷的步骤:

1. 通过pvcreate命令将linux分区处理成物理卷(PV);
2. 通过vgcreate命令将创建好的物理卷处理成卷组(Vg);
3. 通过lvcreate命令将卷组分成若干个逻辑卷(Lv);
4.之后我们可以对逻辑卷进行格式化,挂载,删除等操作,我们可以动态的调整逻辑卷的大小,并且该操作不会影响我们在逻辑卷(Lv)上的数据。

实际情况中,动态扩容逻辑卷常见较多,下面会详细讲解动态扩逻辑卷的步骤

物理卷创建管理操作:

  1. pvcreate创建物理卷:( 把普通Linux分区变成物理卷)
    格式:pvcreate /dev/sdb{1,2,3…}
[root@station1 ~]# [root@station1 ~]# pvcreate /dev/sdb{1,2,3,5,6,7}
  Physical volume "/dev/sdb3" successfully created
  Physical volume "/dev/sdb5" successfully created
  Physical volume "/dev/sdb6" successfully created
  Physical volume "/dev/sdb7" successfully created
  1. pvscan查看物理卷信息:会显示所有物理卷的情况。
    格式:pvscan
[root@station1 ~]# pvscan
  PV /dev/sdb1                      lvm2 [964.81 MB]
  PV /dev/sdb2                      lvm2 [964.84 MB]
  PV /dev/sdb3                      lvm2 [964.84 MB]
  PV /dev/sdb5                      lvm2 [964.81 MB]
  PV /dev/sdb6                      lvm2 [964.81 MB]
  PV /dev/sdb7                      lvm2 [964.81 MB]
  Total: 6 [5.65 GB] / in use: 0 [0   ] / in no VG: 6 [5.65 GB] 
  1. pvdisplay查看各个物理卷的详细参数:
    格式:pvdisplay [/dev/sdb{1,2,3…}] 不跟参数则显示所有的物理卷信息
[root@station1 ~]# pvdisplay /dev/sdb1
  "/dev/sdb1" is a new physical volume of "964.81 MB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               964.81 MB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               FKaYKk-d46E-KHCQ-WRnn-jUUE-Cd1d-mM8mPN
  1. pvremove删除物理卷:当物理卷里的扩展快没有被使用时可以删除。
    格式:pvremove /dev/sdb5
[root@station1 ~]# pvscan
  PV /dev/sdb7   VG vg1             lvm2 [960.00 MB / 960.00 MB free]
  PV /dev/sdb1   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb2   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb3   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb5                      lvm2 [964.81 MB]
  PV /dev/sdb6                      lvm2 [964.81 MB]
  Total: 6 [5.65 GB] / in use: 4 [3.76 GB] / in no VG: 2 [1.88 GB]
[root@station1 ~]# pvremove /dev/sdb5
  Labels on physical volume "/dev/sdb5" successfully wiped
[root@station1 ~]# pvscan
  PV /dev/sdb7   VG vg1             lvm2 [960.00 MB / 960.00 MB free]
  PV /dev/sdb1   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb2   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb3   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb6                      lvm2 [964.81 MB]
  Total: 5 [4.70 GB] / in use: 4 [3.76 GB] / in no VG: 1 [964.81 MB]

卷组的创建管理:

  1. vgcreate创建卷组:
    格式:vgcreate [-s <8M|16M|…>] vg0 /dev/sdb{1,2,3…}
    -s:指定扩展块(PE)的大小,默认为4MB;(相当与磁盘上的簇,扩展逻辑卷的基本单位。后面的值可以是8M 16M 32M 64M …最多65532个扩展块。
    vg0:新创建的卷组的名字。
    /dev/sdb{1,2,3…}:需要的物理卷可以写多个;
[root@station1 ~]# vgcreate vg0 /dev/sdb{1,2,3}
  Volume group "vg0" successfully created
  1. vgdisplay查看各个卷组的详细参数:
    格式:vgdisplay /dev/vg0
[root@station1 ~]# vgdisplay /dev/vg0
  --- Volume group ---
  VG Name               vg0
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  Cur PV                3
  Act PV                3
  VG Size               2.82 GB
  PE Size               4.00 MB   //扩展快大小 默认4MB
  Total PE              723
  Alloc PE / Size       0 / 0
  Free  PE / Size       723 / 2.82 GB
  VG UUID               w4q8ET-UBLY-rHwg-2ZVv-NOw4-dd1e-1ABr2f
[root@station1 ~]# vgcreate -s 16M vg1 /dev/sdb{5,6,7}
  Volume group "vg1" successfully created
[root@station1 ~]# vgdisplay /dev/vg1
  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  Cur PV                3
  Act PV                3
  VG Size               2.81 GB
  PE Size               16.00 MB     //指定扩展块大小为16MB
  Total PE              180
  Alloc PE / Size       0 / 0
  Free  PE / Size       180 / 2.81 GB
  VG UUID               x97eh2-JYxW-4Ygh-5axx-TquS-0vxR-YdFyJ1
  1. vgscan查看卷组的信息:
    格式:vgsacn
[root@station1 ~]# vgscan
  Found volume group "vg1" using metadata type lvm2
  Found volume group "vg0" using metadata type lvm2
  1. vgreduce缩小卷组:把物理卷重卷组中删除。
    格式:vgreduce vg0 /dev/sdb3
[root@station1 ~]# vgreduce vg0 /dev/sdb3
Removed "/dev/sdb3" from volume group "vg0"
  1. vgextend扩展卷组:把某个物理卷添加到卷组中。
    格式:vgextend vg0 /dev/sdb2 将物理卷/dev/sdb2添加到vg0卷组
[root@station1 ~]# vgextend vg0 /dev/sdb3
  Volume group "vg0" successfully extended
  1. vgremove删除卷组:
    格式:vgremove /dev/vg1
[root@station1 ~]# pvscan
  PV /dev/sdb7   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
  PV /dev/sdb5   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
  PV /dev/sdb6   VG vg1   lvm2 [960.00 MB / 960.00 MB free]
  PV /dev/sdb1   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb2   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb3   VG vg0   lvm2 [964.00 MB / 964.00 MB free]
  Total: 6 [5.64 GB] / in use: 6 [5.64 GB] / in no VG: 0 [0   ]
[root@station1 ~]# vgremove /dev/vg1
  Volume group "vg1" successfully removed
[root@station1 ~]# pvscan
  PV /dev/sdb1   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb2   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb3   VG vg0             lvm2 [964.00 MB / 964.00 MB free]
  PV /dev/sdb5                      lvm2 [964.81 MB]
  PV /dev/sdb6                      lvm2 [964.81 MB]
  PV /dev/sdb7                      lvm2 [964.81 MB]
  Total: 6 [5.65 GB] / in use: 3 [2.82 GB] / in no VG: 3 [2.83 GB]

逻辑卷的创建及管理:

  1. lvcreate创建逻辑卷命令:
    lvcreate -L 512M -n data vg0
    -L 512M:设置逻辑卷的大小为512M。
    -n data:设置逻辑卷的名字为data ;表示法:/dev/卷组名/data
    vg0 :设置是有那个卷组生成的逻辑卷。
    创建一个容量为1000MB的逻辑卷data
[root@station1 ~]# lvcreate -L 1000M -n data vg0
  Logical volume "data" created

lvcreate -l 32 -n data vg0
-l 32:生成的逻辑卷使用32个扩展块,逻辑卷大小=32*PE(默认4M)则为128M
-n data:逻辑卷的名字;
vg0 :设置是有那个卷组生成的逻辑卷。

创建一个32个扩展块,容量为32*4=128MB的逻辑卷data128

[root@station1 ~]# lvcreate -l 32 -n data128 vg0 
  Logical volume "data128" created
  1. 格式化逻辑卷:
    mkfs.ext3 /dev/vg0/data

     3. lvsacn查看逻辑卷的信息:
    
[root@station1 ~]# lvscan
  ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
    4)lvdisplay查看逻辑卷的具体参数:
[root@station1 ~]# lvdisplay /dev/vg0/data
  --- Logical volume ---
  LV Name                /dev/vg0/data
  VG Name                vg0
  LV UUID                9Od1nq-cHmY-MlrL-vgXW-7Kam-pAfU-Qc8mal
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1000.00 MB
  Current LE             250
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
  1. 增大逻辑卷大小:
    lvextend命令:增大逻辑卷大小
    格式:lvextend -L +100M /dev/vg0/data
[root@station1 ~]# lvextend -L +1000M /dev/vg0/data
  Extending logical volume data to 1.95 GB
  Logical volume data successfully resized

resize2fs /dev/vg0/data 使上面增加的立即生效。

[root@station1 ~]# resize2fs /dev/vg0/data
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg0/data to 512000 (4k) blocks.
The filesystem on /dev/vg0/data is now 512000 blocks long.
[root@station1 ~]# lvscan
  ACTIVE            '/dev/vg0/data' [1.95 GB] inherit

4.减少逻辑卷大小:
lvreduce命令:减少逻辑卷大小
格式:Lvreduce -L -100M /dev/vg0/data

[root@station1 ~]# lvreduce -L -1000M /dev/vg0/data
  WARNING: Reducing active logical volume to 1000.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce data? [y/n]: y
  Reducing logical volume data to 1000.00 MB
  Logical volume data successfully resized
            resize2fs /dev/vg0/data  使上面增加的立即生效。

注意:动态扩容时候,xfs类型的只能扩大,如果非要缩小的话,需要卸载目录再缩小再格式化后重新挂载,大致步骤如下:

  • 执行示例命令:fuser -km /home/ (提示命令找不到,需要安装 yum -y install psmisc )确保home目录没被其他进程使用,eg:在home目录执行该命令
  • 执行示例命令: 卸载home目录分区
  • 执行示例命令:lvremove /dev/mapper/centos_bogon-home 或者lvreduce -L -40G /dev/mapper/centos-home 移除掉home目录(需重新创建目录)/或者减少home控件,两者选一
  • 执行示例命令:df -hl 可查看是否卸载成功
  • 如果执行的lvremove命令,需要执行示例命令:lvcreate -L 10G -n /dev/mapper/centos_bogon-home 分配10G的控件给予home目录
  • 执行示例命令:mkfs.xfs /dev/mapper/centos_bogon-home 格式化文件系统
  • 执行示例命令:mount /dev/mapper/centos_bogon /home/ 把home目录挂载回去
  • 执行示例命令:tar -xzvf /tmp/home.tgz -C /home 恢复备份数据到home目录

如果是动态扩大容量的话,如下

  • lvextend -L +40G /dev/mapper/centos-root 扩容
  • xfs_growfs /dev/mapper/centos-root 扩展根(这步一定要执行,否则没用)

ext2/ext3/ext4 支持动态缩小扩大,不用卸载格式化目录,切记!!!

[root@station1 ~]# resize2fs /dev/vg0/data
resize2fs 1.39 (29-May-2006)
resize2fs: Bad magic number in super-block while trying to open /dev/vg0/data
Couldn't find valid filesystem superblock.
[root@station1 ~]# lvscan
  ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
  ACTIVE            '/dev/vg0/data128' [128.00 MB] inherit
  1. lvremove删除逻辑卷:
    格式:lvremove /dev/卷组名/逻辑卷名
[root@station1 ~]# lvremove /dev/vg0/data128
Do you really want to remove active logical volume "data128"? [y/n]: y
  Logical volume "data128" successfully removed
[root@station1 ~]# lvscan
  ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit

LVM的快照:

  1. 快照的创建:
    Lvcreate -l 64 -s -n databackup /dev/vg0/data
    -l 64:之前我们已经说过了这里是 64个扩展块,总容量=64*单扩展块大小
    -n databackup:生成的快照的名字。
    /dev/vg0/data:源逻辑卷名字。
[root@station1 ~]# lvscan
  ACTIVE            '/dev/vg0/data' [1000.00 MB] inherit
[root@station1 ~]# lvcreate -L 1000M -s -n databackup /dev/vg0/data
  Logical volume "databackup" created
[root@station1 ~]# lvscan
  ACTIVE   Original '/dev/vg0/data' [1000.00 MB] inherit
  ACTIVE   Snapshot '/dev/vg0/databackup' [1000.00 MB] inherit
  1. 快照的删除:
    lvremove /dev/vg0/databackup
[root@station1 ~]# lvremove /dev/vg0/databackup
Do you really want to remove active logical volume "databackup"? [y/n]: y
  Logical volume "databackup" successfully removed

挂载

将新分的卷挂载在需要挂载的目录下:

格式:mount /dev// /要挂载的点

Mkdir –p /tmp/123//建挂载点 在/tmp/123 下挂载

# Mount  /dev/VolGroup0/data  /tmp/123

设置永久挂载:

# vi /etc/fstab
/dev/VolGroup0/data      /tmp/123     ext3defaults  1  2

Mout 可以查看文件系统格式

总结

  • 创建逻辑卷的顺序:Linux分区—物理卷—卷组—逻辑卷

  • 删除逻辑卷的顺序:逻辑卷—卷组----物理卷—Linux分区

  • 查看卷组的命令,可以看到总磁盘空间,剩余空间

[root@TRAIN-DATA1 bin]# vgdisplay
  --- Volume group ---
  VG Name               cl
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               2.61 TiB
  PE Size               4.00 MiB
  Total PE              684806
  Alloc PE / Size       684806 / 2.61 TiB
  Free  PE / Size       0 / 0   
  VG UUID               oQ90mV-Wufv-dkoQ-Tm5I-0BHc-D75R-OQ2MIS


 

--检查文件系统的磁盘空间占用情况
[root@localhost ~]# df -h /u04
文件系统              容量  已用可用 已用% 挂载点
/dev/mapper/VolGroup00-u04
                       49G   43G3.3G  93% /u04

--扩展逻辑卷大小

[root@localhost ~]# lvextend -L +50G /dev/mapper/VolGroup00-u04
Extending logical volume u04 to 99.03 GB
Logical volume u04 successfully resized

--重新定义ext2,ext3或者是ext4文件系统
[root@localhost ~]# resize2fs /dev/mapper/VolGroup00-u04
resize2fs 1.39 (29-May-2022)
Filesystem at /dev/mapper/VolGroup00-u04 is mounted on /u04; on-line resizing required
Performing an on-line resize of /dev/mapper/VolGroup00-u04 to 25960448 (4k) blocks.
The filesystem on /dev/mapper/VolGroup00-u04 is now 25960448 blocks long.
[root@TRAIN-DATA1 bin]# df -h /dev/sda2
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda2       976M  188M  722M   21% /boot

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值