磁盘分区其实就像柜子打格子一样,打成不同的格子放不同的衣服,裤子,帽子,领带等, 磁盘可以分成多个物理分区,放不同的数据。
主分区:最多只能有个主分区(包含扩展分区)
扩展分区:
也是主分区的一种,也就是说主分区+扩展分区最多只能4个,
扩展分区不能格式化,不能存储数据,只能在划分成逻辑分区才能使用
逻辑分区:
逻辑分区是在扩展分区中划分的,
如果是IDE硬盘,Linux最多支持59个逻辑分区
如果是SCSI硬盘,Linux最多支持11个逻辑分区
分区的表示法
sda1、sda2、sda5、sda6、
数字1、2、5、6,1~4是代表主分区,逻辑分区是从5开始的
sda1、sdb1、sdc1、
a、b、c指的是磁盘的个数,一般从a开始 ,这里是3个磁盘
个主分区,个扩展分区,扩展分区中有个逻辑分区
主分区1 /dev/sda1
主分区2 /dev/sda2
主分区3 /dev/sda3
扩展分区 /dev/sda4
逻辑分区1 /dev/sda5
逻辑分区2 /dev/sda6
逻辑分区3 /dev/sda7
1个主分区,1个扩展分区,扩展分区中有3个逻辑分区
主分区 /dev/sda1
扩展分区 /dev/sda2
逻辑分区1 /dev/sda5
逻辑分区2 /dev/sda6
逻辑分区3 /dev/sda7
df -lh
由上图我们可以看到这台机器有两块磁盘vda和vdb vdb没有进行分区 vda有一个分区vda1
fdisk -l
blocks 容量(k) sector 扇区(字节)一个扇区是512个字节
由上图我们可以看到 vda 有一个分区vda1 40G vdb没有分区 21G
接下来我们对vdb进行分区
fdisk /dev/vdb
m是帮助手册
n 创建一个新的分区
p是主分区 e是扩展分区 (主分区和扩展分区加起来最多只能是4个)
1 分区号(vdb1 只能是1~4)
设置容量起始和结束为止(这里直接回车就是将剩余的全部分配出去)
起始默认是从上一个分区的下一个点开始,可以使用+30G 这里的给分配30G
w 是保存分区
创建好分区,接下来我们需要对分区创建一个文件系统(也可以说是格式化) 注意这个步骤要对磁盘的数据进行备份,,不然会丢失 注意这个步骤要对磁盘的数据进行备份,,不然会丢失 注意这个步骤要对磁盘的数据进行备份,,不然会丢失
mkfs.ext4 /dev/vdb1 创建一个ext4的文件系统
格式化后我们就可以将这个磁盘挂载到一个目录中了
我们创建一个目录
mkdir /data
然后将磁盘挂载上去
mount /dev/vdb1 /data
也可以是
mount -t ext4 /dev/vdb1 /data
但是如果重启之后挂载就看不到了,要永久生效需要在 /etc/fstab
/dev/vdb1 /data ext4 defaults
这里我出现一个问题,导致服务器启动不起来
就是我将上面这行写入/etc/fstab 然后将分区/dev/vdb1删除,这里启动的时候就找不到分区,这样服务器就启动不成功,可以到阿里云后台进入,将这行注释掉然后重启,就可以了
umount /dev/vdb1
假设我们一个磁盘没有分区直接挂载到一个目录上,但是后面磁盘不够了,需要扩容,我们就可以在云服务器后台进行对磁盘的容量进行添加,然后使用命令
//针对ext4文件格式的操作系统(如CentOS6)
e2fsck -f /dev/vdb
resize2fs /dev/vdb
//针对xfs文件格式的操作系统(如CentOS7)
xfs_repair /dev/vdb
xfs_growfs /data
不用关机不用卸载,使用df -lh 就可以直接看到了
上面我们讲的是没有进行分区的,但是假设我们进行了分区 只有一个分区vdb1 30G,但是磁盘有50G
后面我们要进行扩容使用 resize2fs /dev/vdb 只能缩小 不能大于30G,
如果要扩容就只能重新分区,数据要备份迁移
这是传统分区的缺点,
上面我们讲了传统分区,如果要扩容,就需要数据进行迁移 我们可以使用LVM来管理,就可以直接在线扩容
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要可以属于同一个卷组,也可以属于不同的多个卷组。
物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。
默认大小为4M的PE
逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
一个卷组(VG)由一个或多个物理卷(PV)组成
PV LV VG 之间的关系
一块硬盘被分区物理分区,然后将分区转成物理卷,其内部是被分成若干个默认大小为4M的PE,然后在PV的基础上创建卷组,可以将一个或者多个PV加到VG中,VG就好像一个空间池,假如多少个PV,VG就有多大的容量,最后基于VG创建逻辑卷,一个逻辑卷就是若干个PE,然后将LV格式化再挂载
创建一个物理卷
pvcreate 硬盘名称(物理分区名)
pvcreate /dev/vdb1
创建一个卷组
vgcreate 自定义VG名称 要加入的PV
vgcreate vg-test /dev/vdb1
vgdisplay 可以用来查看vg信息
如果卷组已经存在 将物理卷加入卷组
vgextend命令用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。
LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。
vgextend vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"加入卷组"vg2000"
创建一个逻辑卷
create -n 自定义逻辑卷名称 -L 要创建的逻辑卷的大小 VG名称
lvcreate -n lv-test -L 3G vg-test
创建文件系统
mkfs.ext4 逻辑卷名
mkfs.ext4 /dev/vg-test/lv-test
挂载
mount 逻辑卷名 目录名
mount /dev/vg-test/lv-test /lvtest/
lvextend -L +1G 逻辑卷名
扩容1G变成4G
lvextend -L +1G /dev/mapper/vg--test-lv--test名字这个很奇怪()
这里会发现/dev/mapper/vg--test-lv--test名字这个很奇怪(这是使用fdisk -l查看出来的,也可以是逻辑卷名)
这里名字很奇怪,下次还是不要用这种带有横杠的名字,使用驼峰
更新文件系统
resize2fs 逻辑卷名
resize2fs /dev/mapper/vg--test-lv--test
缩小的话,有的不支持,会丢数据(网上说的没试验)
一个目录只能挂载一个磁盘,假设我一个磁盘后面不够了,要换一个新的磁盘,我们可以将旧的磁盘卸载掉,然后挂载到一个临时目录,然后将旧的目录挂载到新的磁盘上,然后将临时目录的东西 复制过来
https://www.cnblogs.com/jackruicao/articles/6258812.html https://www.cnblogs.com/xs104/p/4642406.html https://www.toutiao.com/i6665174678681682435/