2023年11月25日发(作者:)
Linux磁盘分区详解(新建分区,现有分区扩容,分区减容)
⽬录
⼀、Linux⽂件系统简介
1、磁盘概念
Linux所有设备都被抽象为⼀个⽂件,保存在/dev⽬录下
设备名称⼀般为 hd[a-z]或sd[a-z]([a-z]为分区号),hda⼀般是指IDE接⼝的硬盘,sda⼀般是指SATA接⼝的硬盘,如:hda
2、分区的概念
Q:为什么要分区?可以把不同资料,放⼊不同分区中管理,降低风险;⼤硬盘搜索范围⼤,效率低;磁盘配合只能对分区做设定;经常会操
作,容易产⽣碎⽚。
Q:常⽤查看分区和⽬录命令:fdisk查看硬盘分区表;df:查看分区使⽤情况;du: 查看⽂件占⽤空间情况
5、 逻辑卷-----LV(Logical Volume)
逻辑分区:扩展分区不能直接使⽤,它必须经过第⼆次分割成为⼀个⼀个的逻辑分区,然后才可以使⽤。⼀个扩展分区中的逻辑分区可以有
任意多个。
说明:系统必须交换分区(swap),根分区(/)(其他主分区,扩展分区,逻辑分区都是在根分区⽬录上操作的):是内存交换空间。由
三、服务器新建磁盘空间
将新加的sdb磁盘(10G)分为两个区,sdb1),sdb2,共⽤⼀个卷组(vgdata01),分别挂载到mysql(4G)数据⽬录:/data;
oracle(6G)数据⽬录:/u01
其⼤概流程为:
对磁盘进⾏物理分区
将分区设置为物理卷
[root@CentOS7-0003 /]# fdisk /dev/sdb
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
Device does not contain a recognized partition table
使⽤磁盘标识符 0x4319fbfa 创建新的 DOS 磁盘标签。
命令(输⼊ m 获取帮助):n //添加第⼀个分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): // p是主分区,e是逻辑分区,默认是p
Using default response p
分区号 (1-4,默认 1): //分区号为1,直接回车
起始 扇区 (2,默认为 2048): //直接回车默认从2048个柱⾯开始划分,直接回车
将使⽤默认值 2048
分区 1 已设置为 Linux 类型,⼤⼩设为 5 GiB
命令(输⼊ m 获取帮助):n //添加第⼀个分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): // p是主分区,e是逻辑分区,默认是p
Using default response p
分区号 (2-4,默认 2): //分区号为2,直接回车
起始 扇区 (10487808-20971519,默认为 10487808): //直接回车默认从10487808个柱⾯开始划分,直接回车
将使⽤默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-20971519,默认为 20971519): //剩余空间都分配给第⼆个分区,直接回车
将使⽤默认值 20971519
分区 2 已设置为 Linux 类型,⼤⼩设为 5 GiB
命令(输⼊ m 获取帮助):p //输⼊P回车,查看添加的分区
磁盘 /dev/sdb:10.7 GB, 1 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理):512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4319fbfa
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20971519 5241856 83 Linux
命令(输⼊ m 获取帮助):w //输⼊w回车,保存添加的分区,这⼀步⼀定要否则不⽣效
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@CentOS7-0003 /]#
Last 扇区, +扇区 or +size{K,M,G} (2,默认为 20971519):+5G //#加空间⼤⼩,这⾥有很多种选择:+后⾯单位可以接M,G,K(记得要⼤写)表⽰
说明:创建完成物理分区后centos/redhat6级以下版本操作系统,需重启服务器,centos/redhat7⽆需重启
2、创建物理卷(PV)
将新创建的分区转化成物理卷,主要是添加LVM属性信息并划分PE存储单元,多个⼀起设置 pvcreate /dev/sdb{1,2,3,4,5}
[root@CentOS7-0003 /]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
[root@CentOS7-0003 /]# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
[root@CentOS7-0003 /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos_centos7-0003 lvm2 a-- <19.00g 0
/dev/sdb1 lvm2 --- 5.00g 5.00g
/dev/sdb2 lvm2 --- <5.00g <5.00g
[root@CentOS7-0003 /]#
查看系统中的物理卷pvs、pvdisplay、pvscan 这三个命令都可以查看系统中有哪些物理卷PV
3、创建卷组(VG)
创建卷组vgdata ,并将刚才创建好的物理卷加⼊该卷组.默认PE⼤⼩为4MB,PE是卷组的最⼩存储单元.可以通过 –s参数修改⼤⼩。
[root@CentOS7-0003 /]# vgcreate vgdata /dev/sdb1 //创建卷组vgdata,并将/dev/sdb1添加到卷组
Volume group "vgdata" successfully created
[root@CentOS7-0003 /]# vgextend vgdata /dev/sdb2 //将/dev/sdb2添加到vgdata卷组
Volume group "vgdata" successfully extended
[root@CentOS7-0003 /]# vgs //查看卷组信息
VG #PV #LV #SN Attr VSize VFree
centos_centos7-0003 1 2 0 wz--n- <19.00g 0
vgdata 2 0 0 wz--n- 9.99g 9.99g
[root@CentOS7-0003 /]#
4、创建逻辑卷(LV)
创建逻辑卷,将卷组vgdata上⾯分割4G给新的逻辑卷lvdata1,将卷组vgdata上剩余空间分配给新的逻辑卷lvdata2
[root@CentOS7-0003 /]# lvcreate -L 4G -n lvdata01 vgdata //将vgdata上4G分配给新建的逻辑卷lvdata01
Logical volume "lvdata01" created.
[root@CentOS7-0003 /]# lvcreate -l 100%FREE -n lvdata02 vgdata //将vgdata上剩余空间分配给新建的逻辑卷lvdata02
Logical volume "lvdata02" created.
[root@CentOS7-0003 /]# lvs //查看逻辑卷信息
[root@CentOS7-0003 /]# 4 /dev/vgdata/lvdata01 //在逻辑卷lvdata01上创建⽂件系统ext4
mke2fs 1.42.9 (28-Dec-2013)
⽂件系统标签=
OS type: Linux
块⼤⼩=4096 (log=2)
分块⼤⼩=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第⼀个数据块=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写⼊inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@CentOS7-0003 /]# 4 /dev/vgdata/lvdata02 //在逻辑卷lvdata02上创建⽂件系统ext4
mke2fs 1.42.9 (28-Dec-2013)
⽂件系统标签=
[root@CentOS7-0003 /]# mkdir -p /u01 /data //新建挂载⽬录/data /u01
[root@CentOS7-0003 /]# mount /dev/vgdata/lvdata01 /data //挂载⽂件系统lvdata01到/data⽬录
[root@CentOS7-0003 /]# mount /dev/vgdata/lvdata02 /u01 //挂载⽂件系统lvdata01到/u01⽬录
[root@CentOS7-0003 /]# df -h
⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.6M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/mapper/centos_centos7--0003-root 17G 1.2G 16G 7% /
/dev/sda1 1014M 149M 866M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vgdata-lvdata01 3.9G 16M 3.6G 1% /data
/dev/mapper/vgdata-lvdata02 5.8G 24M 5.5G 1% /u01
[root@CentOS7-0003 /]#
6、设置开机⾃动挂载
修改/etc/fstab最后⼀⾏加⼊,保证开启挂载,若编辑错误,服务器会出现重启故障/
/dev/mapper/vgdata-lvdata01 /data ext4 defaults 0 0
/dev/mapper/vgdata-lvdata02 /u01 ext4 defaults 0 0
⾄此新建磁盘以及磁盘分区已经处理完成。
四、删除分区操作
⼀定谨慎操作,会导致数据丢失,仅限于磁盘和系统盘没有任何关联的磁盘上操作,否则稍不慎会导致服务器⽆法启动
1、删除⾃动挂载
删除/etc/fstab配置⾥⾯的⾃动挂载命令
2、卸载⽬录挂载
[root@CentOS7-0003 mapper]# umount /u01/
3、删除逻辑分区(LV)
[root@CentOS7-0003 mapper]# lvremove /dev/vgdata/lvdata01
Do you really want to remove active logical volume vgdata/lvdata01? [y/n]: y
Logical volume "lvdata01" successfully removed
[root@CentOS7-0003 mapper]# lvdisplay //查看逻辑卷
4、删除卷组(VG)
[root@CentOS7-0003 mapper]# vgremove vgdata
Volume group "vgdata" successfully removed
[root@CentOS7-0003 mapper]# vgdisplay //查看卷组
6、删除分区(PP)
[root@CentOS7-0003 mapper]# fdisk /dev/sdb
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
命令(输⼊ m 获取帮助):d
分区号 (1,2,默认 2):
分区 2 已删除
命令(输⼊ m 获取帮助):d
已选择分区 1
分区 1 已删除
命令(输⼊ m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@CentOS7-0003 mapper]#
五、分区扩容
给现有分区扩容,将新加的sdc磁盘(10G)【需要先在虚拟机中加⼊新的磁盘】,全部分配给现有oracle数据⽬录:/u01
其⼤概流程为:
对磁盘进⾏物理分区
将分区设置为物理卷
将物理卷添加到vgdata卷组
[root@CentOS7-0003 ~]# fdisk /dev/sdc
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
Device does not contain a recognized partition table
使⽤磁盘标识符 0x6b3d2f07 创建新的 DOS 磁盘标签。
命令(输⼊ m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2,默认为 2048):
将使⽤默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2,默认为 20971519):
将使⽤默认值 20971519
分区 1 已设置为 Linux 类型,⼤⼩设为 10 GiB
命令(输⼊ m 获取帮助):p
磁盘 /dev/sdc:10.7 GB, 1 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理):512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x6b3d2f07
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 20971519 10484736 83 Linux
命令(输⼊ m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@CentOS7-0003 ~]#
2、创建物理卷(PV)
将分区/dev/sdbc设置成物理卷
[root@CentOS7-0003 ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
[root@CentOS7-0003 ~]#
3、物理卷添加到现有卷组(VG)
将新建的物理卷/dev/sdc1添加到/u01所在卷组vgdata
[root@CentOS7-0003 ~]# df -h //查看u01所在的卷组
⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 8.6M 911M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
/dev/mapper/centos_centos7--0003-root 17G 1.2G 16G 7% /
/dev/sda1 1014M 149M 866M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
/dev/mapper/vgdata-lvdata01 3.9G 16M 3.6G 1% /data
/dev/mapper/vgdata-lvdata02 5.8G 24M 5.5G 1% /u01
[root@CentOS7-0003 ~]# vgextend vgdata /dev/sdc1 //将物理卷sdc1添加到vgdata卷组
Volume group "vgdata" successfully extended
[root@CentOS7-0003 ~]#
4、将卷组空间分配给需要增加空间的逻辑卷(LV)
将卷组vgdata上的剩余空间分给配/u01所在的逻辑卷
[root@CentOS7-0003 ~]# lvextend -l +100%FREE /dev/mapper/vgdata-lvdata02
Size of logical volume vgdata/lvdata02 changed from <10.00 GiB (2559 extents) to <15.99 GiB (4093 extents).
Logical volume vgdata/lvdata02 successfully resized.
[root@CentOS7-0003 ~]#
5、更新/u01对应的⽂件系统
[root@CentOS7-0003 ~]# resize2fs /dev/mapper/vgdata-lvdata02
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vgdata-lvdata02 is mounted on /u01; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/vgdata-lvdata02 is now 4191232 blocks long.
[root@CentOS7-0003 ~]# df -h
⽂件系统 容量 已⽤ 可⽤ 已⽤% 挂载点
devtmpfs 908M 0 908M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
2、 卷组命令
vgscan #检测系统中所有磁盘
vgck [卷组名] #⽤于检查卷组中卷组描述区域信息的⼀致性。
vgdisplay [卷组名] #显⽰卷组的属性信息
5、块信息命令
lsblk


发布评论