前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >liunx磁盘扩容

liunx磁盘扩容

作者头像
丁D
发布2022-08-12 20:27:09
1.7K0
发布2022-08-12 20:27:09
举报
文章被收录于专栏:老铁丁D

分区概念

磁盘分区其实就像柜子打格子一样,打成不同的格子放不同的衣服,裤子,帽子,领带等, 磁盘可以分成多个物理分区,放不同的数据。

代码语言:javascript
复制
主分区:最多只能有个主分区(包含扩展分区) 
扩展分区: 
也是主分区的一种,也就是说主分区+扩展分区最多只能4个, 
扩展分区不能格式化,不能存储数据,只能在划分成逻辑分区才能使用 
逻辑分区: 
逻辑分区是在扩展分区中划分的, 
如果是IDE硬盘,Linux最多支持59个逻辑分区 
如果是SCSI硬盘,Linux最多支持11个逻辑分区 

分区的表示法

代码语言:javascript
复制
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个逻辑分区

代码语言:javascript
复制
主分区 /dev/sda1 
扩展分区 /dev/sda2 
逻辑分区1 /dev/sda5 
逻辑分区2 /dev/sda6 
逻辑分区3 /dev/sda7 

查看各个磁盘的使用情况

代码语言:javascript
复制
df -lh 

由上图我们可以看到这台机器有两块磁盘vda和vdb vdb没有进行分区 vda有一个分区vda1

查看磁盘具体信息

代码语言:javascript
复制
fdisk -l 

blocks 容量(k) sector 扇区(字节)一个扇区是512个字节

由上图我们可以看到 vda 有一个分区vda1 40G vdb没有分区 21G

分区

接下来我们对vdb进行分区

代码语言:javascript
复制
fdisk /dev/vdb 
m是帮助手册 
n 创建一个新的分区 
p是主分区 e是扩展分区 (主分区和扩展分区加起来最多只能是4个) 
1 分区号(vdb1 只能是1~4) 
设置容量起始和结束为止(这里直接回车就是将剩余的全部分配出去) 
起始默认是从上一个分区的下一个点开始,可以使用+30G 这里的给分配30G 
w 是保存分区 

创建文件系统

创建好分区,接下来我们需要对分区创建一个文件系统(也可以说是格式化) 注意这个步骤要对磁盘的数据进行备份,,不然会丢失 注意这个步骤要对磁盘的数据进行备份,,不然会丢失 注意这个步骤要对磁盘的数据进行备份,,不然会丢失

代码语言:javascript
复制
mkfs.ext4 /dev/vdb1 创建一个ext4的文件系统 

挂载

格式化后我们就可以将这个磁盘挂载到一个目录中了

代码语言:javascript
复制
我们创建一个目录 
mkdir /data 
然后将磁盘挂载上去 
mount /dev/vdb1 /data 
也可以是 
mount -t ext4 /dev/vdb1 /data 

永久生效

但是如果重启之后挂载就看不到了,要永久生效需要在 /etc/fstab

代码语言:javascript
复制
/dev/vdb1 /data ext4 defaults   
这里我出现一个问题,导致服务器启动不起来 
就是我将上面这行写入/etc/fstab 然后将分区/dev/vdb1删除,这里启动的时候就找不到分区,这样服务器就启动不成功,可以到阿里云后台进入,将这行注释掉然后重启,就可以了 

卸载

代码语言:javascript
复制
umount /dev/vdb1 

对数据盘进行在线扩容

代码语言:javascript
复制
假设我们一个磁盘没有分区直接挂载到一个目录上,但是后面磁盘不够了,需要扩容,我们就可以在云服务器后台进行对磁盘的容量进行添加,然后使用命令 
//针对ext4文件格式的操作系统(如CentOS6) 
e2fsck -f /dev/vdb 
resize2fs /dev/vdb 
//针对xfs文件格式的操作系统(如CentOS7) 
xfs_repair /dev/vdb 
xfs_growfs /data 
不用关机不用卸载,使用df -lh 就可以直接看到了 

传统分区扩容

代码语言:javascript
复制
上面我们讲的是没有进行分区的,但是假设我们进行了分区 只有一个分区vdb1 30G,但是磁盘有50G 
后面我们要进行扩容使用 resize2fs /dev/vdb 只能缩小 不能大于30G, 
如果要扩容就只能重新分区,数据要备份迁移 
这是传统分区的缺点, 

LVM管理(LV、VG、PV)

上面我们讲了传统分区,如果要扩容,就需要数据进行迁移 我们可以使用LVM来管理,就可以直接在线扩容

物理卷 PV

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。

卷组 VG

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

逻辑卷 LV

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要可以属于同一个卷组,也可以属于不同的多个卷组。

物理区域 PE

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

默认大小为4M的PE

逻辑区域 LE

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。

一个卷组(VG)由一个或多个物理卷(PV)组成

PV LV VG 之间的关系

一块硬盘被分区物理分区,然后将分区转成物理卷,其内部是被分成若干个默认大小为4M的PE,然后在PV的基础上创建卷组,可以将一个或者多个PV加到VG中,VG就好像一个空间池,假如多少个PV,VG就有多大的容量,最后基于VG创建逻辑卷,一个逻辑卷就是若干个PE,然后将LV格式化再挂载

实践
代码语言:javascript
复制
创建一个物理卷 
pvcreate 硬盘名称(物理分区名) 
pvcreate /dev/vdb1 

代码语言:javascript
复制
创建一个卷组 
vgcreate 自定义VG名称 要加入的PV 
vgcreate vg-test /dev/vdb1 
vgdisplay 可以用来查看vg信息 
如果卷组已经存在 将物理卷加入卷组 
vgextend命令用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。 
LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。 
vgextend vg2000 /dev/sdb2 #将物理卷"/dev/sdb2"加入卷组"vg2000" 

代码语言:javascript
复制
创建一个逻辑卷 
create -n 自定义逻辑卷名称 -L 要创建的逻辑卷的大小 VG名称 
lvcreate -n lv-test -L 3G vg-test 
创建文件系统 
mkfs.ext4 逻辑卷名 
mkfs.ext4 /dev/vg-test/lv-test 

代码语言:javascript
复制
挂载 
mount 逻辑卷名 目录名 
mount /dev/vg-test/lv-test /lvtest/ 

代码语言:javascript
复制
lvextend -L +1G 逻辑卷名 
扩容1G变成4G 
lvextend -L +1G /dev/mapper/vg--test-lv--test名字这个很奇怪() 
这里会发现/dev/mapper/vg--test-lv--test名字这个很奇怪(这是使用fdisk -l查看出来的,也可以是逻辑卷名) 
这里名字很奇怪,下次还是不要用这种带有横杠的名字,使用驼峰 

代码语言:javascript
复制
更新文件系统 
resize2fs 逻辑卷名 
resize2fs /dev/mapper/vg--test-lv--test 

缩小的话,有的不支持,会丢数据(网上说的没试验)

其他问题

代码语言:javascript
复制
一个目录只能挂载一个磁盘,假设我一个磁盘后面不够了,要换一个新的磁盘,我们可以将旧的磁盘卸载掉,然后挂载到一个临时目录,然后将旧的目录挂载到新的磁盘上,然后将临时目录的东西 复制过来 

参考

https://www.cnblogs.com/jackruicao/articles/6258812.html https://www.cnblogs.com/xs104/p/4642406.html https://www.toutiao.com/i6665174678681682435/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分区概念
  • 查看各个磁盘的使用情况
  • 查看磁盘具体信息
  • 分区
  • 创建文件系统
  • 挂载
  • 永久生效
  • 卸载
  • 对数据盘进行在线扩容
  • 传统分区扩容
  • LVM管理(LV、VG、PV)
    • 物理卷 PV
      • 卷组 VG
        • 逻辑卷 LV
          • 物理区域 PE
            • 逻辑区域 LE
              • 实践
              • 其他问题
              • 参考
              相关产品与服务
              对象存储
              对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档