前提要求:

虚拟机:centos7.x

在安装Centos系统时,磁盘选择为LVM逻辑卷。当选择为LVM后才能创建逻辑卷等(必须)

数据格式选择的是xfs,很多讲解使用的是ext3,但以后xfs的优势会比ext越来越大。(可选)

LVM是Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对硬盘分区进行管理的一种机制。LVM是建立在硬盘和分区上的逻辑层,它允许跨硬盘、分区创建逻辑卷并创建文件系统,可以很方便执行增加、扩展、删除等操作。

CentOS7查看硬盘情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
> lsblk										#查看分区和磁盘
>
> df -h #查看空间使用情况
>
> fdisk -l #分区工具查看分区信息
>
> cfdisk /dev/sda #查看分区
>
> blkid #查看硬盘label(别名)
>
> du -sh ./* #统计当前目录各文件夹大小
>
> free -h #查看内存大小
>
> cat /proc/cpuinfo| grep "cpu cores"| uniq #查看cpu核心数
>

扩容磁盘挂载

物理卷(PV)

物理卷(Physical Volume,PV):就是指硬盘分区,也可以是整个硬盘或已创建的软RAID,是LVM的基本存储设备。在创建逻辑卷之前需要先创建物理卷,然后将多个物理卷组合创建卷组,最后在卷组的基础上创建逻辑卷。

可以将空白硬盘或分区加入主机,系统识别到新的硬盘sdb后,使用pvcreate对硬盘创建PV。

添加新硬盘或直接扩展分区的方式:`直接扩展/或直接新添加一个硬盘

1
2
lsblk	#列出系统上所有的磁盘
df -h #检查文件系统的磁盘空间占用情况

可以看出磁盘vda还有200多G的空白磁盘没有挂载。

1
2
3
4
5
6
7
8
9
10
11
12
13
fdisk /dev/vda	#回车
p #回车
n #回车
默认 #回车
默认 #回车
默认 #回车
默认 #回车
t #回车
默认 #回车
8e #回车
p #回车
w #回车
reboot #回车
1
2
pvcreate /dev/vda3	#创建物理卷
pvdisplay

卷组(VG)

卷组(Volume Group,VG):是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个逻辑卷。现在使用vgcreate命令对上文创建的PV(单个物理卷)创建卷组。

1
2
vgcreate -s 10M vg0 /dev/vda3	#创建卷组vg0,指定物理块PE大小10M,并将pv:/dev/vda3加入vg0
vgdisplay # 查看所有卷组的信息.后面接具体卷组名,可查看指定卷组信息
1
pvdisplay	# 查看所当前物理卷的信息.后面可接具体物理卷设备,可查看指定物理卷信息

创建逻辑卷(LV)

逻辑卷(Logical Volume,LV):类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。可以使用lvcreate命令创建逻辑卷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@hewanli-mysql ~]# lvcreate -n lv0 -l 100%vg vg0	#使用vg0的全部空间创建逻辑卷lv0
Logical volume "lv0" created.
[root@hewanli-mysql ~]# lvdisplay
--- Logical volume ---
LV Path /dev/vg0/lv0
LV Name lv0
VG Name vg0
LV UUID uz1Ej1-mC6D-9MBf-Sdbc-2UQS-frMm-AsuzbC
LV Write Access read/write
LV Creation host, time hewanli-mysql, 2019-05-28 03:44:32 -0400
LV Status available
# open 0
LV Size 249.99 GiB
Current LE 25599
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
1
2
3
4
5
pvdisplay
lsblk -f /dev/vda
#会在/dev下生成一个新的设备文件:
ll /dev/vg0/lv0
ll /dev/dm-0

文件系统

在逻辑卷lv0创建完成后还需要创建文件系统并挂载到指定目录才能够使用,当然还需要将挂载信息写入/etc/fstab文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mkfs.xfs /dev/vg0/lv0	# 创建文件系统
lsblk /dev/vda -f
lsblk /dev/vg0/lv0 -f
# 将逻辑卷挂载到指定目录(/data),如果改为其他,则以下所有/data都要改成对应的目录(根目录/不可以)
if(/data目录不存在){
mkdir /data && mount /dev/vg0/lv0 /data
} else{
mount /dev/vg0/lv0 /data
}
df -T # 查看挂载点
blkid /dev/vg0/lv0 #注意UUID,下面命令会使用
df -T /dev/vg0/lv0
echo "UUID=2fb5642b-0167-4709-9d35-85a407b4801a /data xfs defaults 0 0" >> /etc/fstab #UUID填自己的(上面命令结果有输出)
cat /etc/fstab | egrep "UUID"
1
2
lsblk	#列出系统上所有的磁盘
df -h #检查文件系统的磁盘空间占用情况

扩展逻辑卷

我们可以很方便的多逻辑卷进行扩展,不论是使用新的空白磁盘还是已有的空白分区。其大致实现原理为:对空白分区创建物理卷,然后将物理卷加入到需要扩展逻辑卷所在的卷组,最后扩大逻辑卷空间。如果逻辑卷所在的卷组还有空闲的空间(PE)可被使用且足够大,则甚至不需要另外的分区或者磁盘。

1
lsblk -f /dev/vda

新增磁盘挂载

Linux 分区命令parted简单使用步骤

由于fdisk命令无法对大于2T的硬盘进行分区(MBR分区表只支持2T以下磁盘,大于2T的磁盘必须使用GPT分区表),所以需要用到parted命令实现。这里将一个12T的硬盘分成2个分区,一个7.5T,另一个4.5T,并格式化成ext4挂载。

  1. 使用parted将硬盘分为两个主分区啊

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    parted /dev/sdb   #进入交互模式
    GNU Parted 1.8.1 Using /dev/sdb Welcome to GNU Parted! Type ‘help’ to view a list of commands.
    (parted) mklabel gpt # 将MBR磁盘格式化为GPT
    (parted) print #打印当前分区,由于还没有创建,所以看不到
    (parted) mkpart primary 0 5TB # 分一个5T的主分区
    (parted) mkpart primary 5TB 8TB # 再分一个3T的主分区
    (parted) print #再次打印分区查看信息
    (parted) quit #退出

    #使用parted命令分区后的磁盘无法再用fdisk进行分区操作
  2. 将分区格式化为ext4格式

    1
    2
    [root@localhost ~]# mkfs.ext4 /dev/sdb1
    [root@localhost ~]# mkfs.ext4 /dev/sdb2
  3. 挂载分区

    1
    2
    3
    4
    5
    6
    7
    [root@localhost]# mount -t ext4 /dev/sdb1 /bk
    [root@localhost]# mount -t ext4 /dev/sdb2 /mail

    [root@localhost ~]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/sdb1 ext4 4.1T 194M 3.9T 1% /bk
    /dev/sdb2 ext4 6.8T 179M 6.4T 1% /mail
  4. 修改vi /etc/fstab,使其开机自动挂载

    1
    2
    /dev/sdb1       /bk          ext4            defaults      1 2
    /dev/sdb2 /mail ext4 defaults 1 2