Linux -> LVM 磁盘配置、扩展容量
文章目录分区基础知识1.分区常用命令2.Linux磁盘3.分区4.文件系统普通磁盘分区1.命令查询磁盘分区2.准备分区创建分区格式化分区挂载目录LVM磁盘分区分区基础知识1.分区常用命令fdisk -l => 查询磁盘信息df -h => 磁盘分区挂载信息mount 分区 挂载目录 => 挂载命令mkfs -t 文件系统类型 分区 => 格式化分区2.Linux磁盘Linu
·
文章目录
分区基础知识
1.分区常用命令
2.Linux磁盘
Linux一切皆为文件
- Linux磁盘、USB、麦克风等所有的硬件都在Linux中有对应的文件表示。
目录/dev
下面存放一些硬件映射的文件。
其中磁盘目录大多对应/dev/sda
或/dev/hda
3.分区
Windows中一块磁盘会被系统分成C D E F盘
Linux中一块磁盘经常被分为
/dev/sda1
/dev/sda2
类似这样的格式
4.文件系统
分区完成或者说分盘完成后,正常做存储读写使用,要赋予一段程序去控制运行
这个程序有好几个版本名称 =>ext2、ext3、ext4(自然用最高的版本)
叫做文件系统
普通磁盘分区
普通的方式是不推荐使用的
因为之后如果需要维护、修改
分区会比较麻烦
1.命令查询磁盘分区
fdisk -l
=> 查询磁盘
-
这一块磁盘Linux用
/dev/sda
目录表示,磁盘名称也就叫这个设备 Start End Blocks Id System /dev/sda1 0 10 10 83 Linux /dev/sda2 11 21 10 8e Linux LVM -
设备:
/dev/sda1
=> 从/dev/sda
分了一个区叫/dev/sda1
-
Start: 内存占用
Start=0 ~~ End=10
的这一段共Blocks=10
/dev/sda2
就只能从11开始了
-
id => 代表一种类型83 82 8e,如果是LVM就是8e(逻辑卷)
-
System => Linux LVM表示这个分区用LVM操作来的,也存在其他的一些表示
df -h
=> 查询分区挂载信息
devtmpf、tmpfs
是内存的挂载- 大概就是你的磁盘512g、运行内存4g
- tmpfs是运行内存挂载点,重启都会清空挂载目录的数据
/dev/sda1
=> 普通分区产生的,对应挂载目录/boot
/dev/mapper/centos-root
=> LVM分区产生的,对应挂载/
基本思路步骤
- 有多余容量的磁盘
/dev/sda
或者/dev/sdb
或者/dev/sdc
- 将磁盘分成
/dev/sda1
或者/dev/sda2
或者/dev/sda3
- 分区的
/dev/sda数字
格式化并赋予文件系统(ext4
) - 挂载到指定目录
2.准备分区
- 加完之后
fdisk -l
- 要么
/dev/sda
对应的内存增加了,要么多了一块/dev/sdb
的硬盘 - 我这边一开始是30g,加到了35g,有5g是没有分区的,用来测试分区
- Linux内存大小不准确没有太大影响
- Linux内存大小不准确没有太大影响
3. 创建分区
用普通方法增加一个
/dev/sd3
的分区
fdisk /dev/sda
=> fdisk命令,(参数) => 多余未使用要分区的磁盘
- d => 删除一个分区,会提示你输入数字,要删除的那个分区(sd3就是输入3)
- m => 帮助(就是现在这个)
- n => 创建一个新的分区
- p => 显示这个磁盘现在的分区信息
- q => 不保存退出
- t => 修改分区id(LVM时要改id为8e)
- w => 保存退出,创建分区完成后要w一下完成
- 错了,起始扇区是
fdik -l
的start节点 fdik -l
4. 格式化分区
mkfs -t ext4 /dev/sda3
=> 赋予文件系统、对应分区- 如果找不到sd3,就重启一下
init 6
- 如果找不到sd3,就重启一下
5. 挂载目录
mkdir /rod
=> 创建一个目录mount /dev/sda3 /rod
=> 将分区3挂载到rod
配置到配置文件中,永久挂载
vi /etc/fstab
=> 使用tab键输入下一位,0和0之间用空格
df -h
LVM磁盘分区
基础知识
- 相比于普通的创建方式.LVM是创建逻辑卷,可以理解为LVM是在
普通分区的基础上又通过一层叫LVM的程序控制再分区挂载的一个管理系统
- 优点在于,因为这一层的控制,在以后某个磁盘分区内存空间不足时,再次加一点点内存会更加方便
- 原因: 普通的方式是需要卸载挂载,记录当前分区start开始的数值,删除分区,重新创建分区等操作的,因为有了这一层LVM,这些操作都由这个LVM系统帮我们做了(实际不是这样,只是先理解这个LVM的作用)
- 所以都
推荐用LVM
对磁盘进行分区
一些术语 => PV VG LV
- 更加信息的可以参考上边的博客或者自行百度
物理卷PV
(physical volume):物理卷就是LVM的基本存储逻辑块- 就是给磁盘普通分区的
/dev/sda1
/dev/sda2
等就是PV
- 就是给磁盘普通分区的
卷组VG
(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。- 就是有一个真的存在的物理卷PV,LVM又给搞了一个假的卷叫VG,作用跟PV差不多相同,所以说他相当于非LVM系统中的物理硬盘
- 它把一个整的PV分成了许多个小块(小块的术语叫PE),比如每个小块内存是4M,组合起来的集合体(n个小块)叫VG
- 看到这里应该就有个大概的意思了,之后每个分区挂载目录应该就是从这VG里拿多少个4M去组合成需要的内存大小去挂载目录
逻辑卷LV
(logical volume):类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。在逻辑卷LV之上建立文件系统。- 每个LV就是一个小分区了,它不再是以前的
/dev/sda1
了,而是一个你自己命名的LV的名称的分区了,挂载目录什么就相同了 - 你说它就是普通分区
/dev/sda1
再细分成了更小的分区使用吧,是这个意思,又不是这个意思 - 因为他是从VG里拿N个4M的小块出来的,但是这个小块,可以不仅仅是
/dev/sda1
打散的,也可以是/dev/sda1
/dev/sda2
都打散组合的 - 如果有好几块硬盘/
/dev/sdb
/dev/sdc
,分区为/dev/sdb1
/dev/sdc1
,都可以加到VG,LV都可以去拿这些小块 - 所以LV由N个4M的小块(PE)组合成分区的,这些个小块PE可以来自任何地方、任何硬盘打散的
- 每个LV就是一个小分区了,它不再是以前的
LVM分区思路
- 先普通分区
/dev/sda4
=> 创建PV - 打散PV为小块加到VG中 => 创建VG
- 从VG里拿需要多少内存 => 创建LV==分区完成
- 格式化LV => 赋予文件系统ext4
- 挂载
LVM一些命令
pvcreate
=> 创建PVpvcreate /dev/sda4
=> 指定普通分区为PV(可以有很多个,反正都是/dev下的路径,是分好区的都可以搞成PV)- 再此之前肯定要用普通的方法分区的 => [
fdisk /dev/sda
] -[n(创建)] -[选择数字第几个分区] -[p(选择主分区还是扩展分区)] -[选择开始start和结束定义分区大小] -[完成]
- 再此之前肯定要用普通的方法分区的 => [
pvdisplay
=> 查看当前的PV
vgcreate
=> 创建VGvgcreate 名称 /dev/sda4
=> 创建VG,指定名称,指定PVvgextend 存在的vg名称 /dev/sda3
=> 添加扩展一个新的PVvgdisplay
=> 查看当前VG
lvcreate
=> 创建LVlvcreate -n 名字 -L 大小 vg的名
=> lvcreate -n name -L 1G vgname- 创建成功的分区叫做
/dev/vgname/lvname
或者/dev/mapper/vgname-lvname
(都可以,在dev的这两个目录都存在) lvextend -L +50M /dev/vgname/lvname
=> 扩展一个lv(扩展一个分区)- 不使用+号,就是扩展为多少大小,不能比原来小
- `lvreduce -L 50M /dev/vgname/lvname`` => 缩减到50M,-5M就是缩减5M
resize2fs /dev/centos/rod
=> 调整文件系统大小
1. 创建一个新的分区
-
此时就是普通的,还不是LVM的
-
类型ID改成8e就是LVM的了
2. 创建PV
pvcreate /dev/sda3
pvdisplay
3. 创建VG
- 如果是创建一个新的VG
vgcreate centos /dev/sda3
=> 创建VG,指定名称,指定PV- 我已经有一个叫centos的VG了,所以我用了扩展的命令
vgextend centos /dev/sda3
=> 已有的vg名称,需要打散为小块的PV
[root@oldLinux ~]# vgextend centos /dev/sda3
Volume group "centos" successfully extended
[root@oldLinux ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 29.99 GiB
PE Size 4.00 MiB
Total PE(总的个数) 7678
Alloc PE / Size(已使用了7422个共28.99G)7422 / 28.99 GiB
Free PE / Size(剩余256个共1G)256 / 1.00 GiB
VG UUID 31RC86-uhtL-5ec4-grUA-DtEt-1d3q-YJGpdd
4. 创建LV
- 创建是
lvcreate -n rod -L 50M centos
- lvcreate -n 名称 -L 50M vgname
- 扩展一个分区是
lvextend -L +50M /dev/centos/rod
- 这里的-L后面是+多少内存
- /dev/centos/rod => /dev/vgname/lvname
[root@oldLinux ~]# lvcreate -n rod -L 50M centos
Rounding up size to full physical extent 52.00 MiB
Logical volume "rod" created.
[root@oldLinux ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
rod centos -wi-a----- 52.00m(创建的,Linux内存有差距没关系)
root centos -wi-ao---- 26.49g
swap centos -wi-ao---- 2.50g
[root@oldLinux ~]# lvextend -L +50M /dev/centos/rod
Rounding size to boundary between physical extents: 52.00 MiB.
Size of logical volume centos/rod changed from 52.00 MiB (13 extents) to 104.00 MiB (26 extents).
Logical volume centos/rod successfully resized.
[root@oldLinux ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
rod centos -wi-a----- 104.00m(扩展后加了一倍)
root centos -wi-ao---- 26.49g
swap centos -wi-ao---- 2.50g
5. 格式化,赋予文件系统ext4
[root@oldLinux centos]# mkfs -t ext4 /dev/centos/rod
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
26624 inodes, 106496 blocks
5324 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
6. 挂载
- 还没有结束,挂载后边还有一步操作
- 也许需要重启
[root@oldLinux centos]# mount /dev/centos/rod /rod
[root@oldLinux centos]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 27G 13G 15G 46% /
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/centos-rod 97M 1.6M 88M 2% /rod
- 永久挂载
-vim /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Nov 10 22:45:11 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=6df12d56-1c9c-4ed5-9a99-f26973f0827b /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/centos/rod /rod ext4 defaults 0 0
调整文件系统大小
[root@oldLinux centos]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 27G 13G 15G 46% /
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/centos-rod 97M 1.6M 88M 2% /rod
- 在容量这一栏里,代表的文件系统的大小,改变了LV的大小并不会改变文件系统的大小
- 要调整文件系统的大小
resize2fs /dev/centos/rod
=> 默认与这个LV大小一致- 如果是扩展文件系统的容量,那么不管目标文件系统是否处于挂载状态都可以执行。
- 如果是缩减文件系统的容量,则只能
先卸载文件系统
,缩减容量后再重新挂载文件系统。umount /dev/xxx
- 如果LV缩减到50m了,文件系统是100m,那么卸载挂载文件系统后,调整大小到50m会提示,缩减可能会丢失数据
[root@oldLinux centos]# resize2fs /dev/centos/rod
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/centos/rod'.
[root@oldLinux centos]# e2fsck -f /dev/centos/rod
e2fsck 1.42.9 (28-Dec-2013)
文件系统的大小 (依据超级块) 为 106496 块
而设备的物理大小为 61440 块
超级块或分区表可能已被损坏!
中断<y>? 是
完成啦
更多推荐
已为社区贡献1条内容
所有评论(0)