简介: 公司使用的服务器的硬盘用的是RAID阵列,装openeuler系统时总共划分了两个阵列组。因为系统目前只使用了一个硬盘阵列,现在打算将一个阵列用作系统盘,将系统默认分配给home目录的空间分配给/目录提升/目录空间,另一个阵列全数用作数据盘。操作涉及:硬盘空间划分、文件系统挂载、磁盘扩容以及过程问题解决方案
一、硬盘空间管理
fdisk 磁盘分区相关操作
df 系统分区挂载信息
mount 挂载分区
umount 卸载分区
1.通过命令:lsblk ,查看硬盘和分区
我是将第二个盘作为系统盘,所以需要将系统的/home挂载到第一个硬盘下。(这里是已经挂载好的截图)
2.硬盘进行分区
硬盘分区可以通过命令fdisk和parted,但fdisk不能分区超过2t.
原硬盘分区情况:一个硬盘sda(4.4T),一个硬盘sdb(450G)
fdisk命令创建分区(一)
[root@localhost /]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.36.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
该磁盘的大小为 4.4 TiB (4799827279872 字节)。DOS 分区表不能用于卷容量大于 2199023255040 字节、512 字节扇区的驱动器。请使用 GUID 分区表格式(GPT)。
命令(输入 m 获取帮助):p
Disk /dev/sda:4.37 TiB,4799827279872 字节,9374662656 个扇区
磁盘型号:MR9460-8i
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):262144 字节 / 524288 字节
磁盘标签类型:dos
磁盘标识符:0x68e60bcf
命令(输入 m 获取帮助):n
分区类型
p 主分区 (0 primary, 0 extended, 4 free)
e 扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-4294967295, 默认 2048):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-4294967295, 默认 4294967295): +3T
值超出范围。
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-4294967295, 默认 4294967295): +1T
创建了一个新分区 1,类型为“Linux”,大小为 1 TiB。
分区 #1 包含一个 ext4 签名。
您想移除该签名吗?是[Y]/否[N]:N
命令(输入 m 获取帮助):p
Disk /dev/sda:4.37 TiB,4799827279872 字节,9374662656 个扇区
磁盘型号:MR9460-8i
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):262144 字节 / 524288 字节
磁盘标签类型:dos
磁盘标识符:0x68e60bcf
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 2048 2147485695 2147483648 1T 83 Linux
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
fdisk命令使用介绍:fdisk挂载硬盘,创建新分区,删除分区
parted命令创建分区 (二)
[root@localhost /]# parted /dev/sda
GNU Parted 3.3
使用 /dev/sda
欢迎使用 GNU Parted!输入 'help' 来查看命令列表。
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助
mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表)
mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区
name 编号 名称 将指定“编号”的分区命名为“名称”
print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区
quit 退出程序
rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区
resizepart NUMBER END 改变 NUMBER 的大小
rm NUMBER 删除编号为 NUMBER 的分区
select 设备 选择要编辑的设备
disk_set 旗标 状态 变更已选设备上的旗标
disk_toggle [旗标] 切换已选设备上的旗标状态
set 编号 旗标 状态 改变指定“编号”分区的旗标
toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态
unit 单位 设置缺省的“单位”
version 显示目前 GNU Parted 的版本与版权信息
(parted) print
型号:AVAGO MR9460-8i (scsi)
磁盘 /dev/sda:4800GB
扇区大小 (逻辑/物理):512B/4096B
分区表:msdos
磁盘标志:
编号 起始点 结束点 大小 类型 文件系统 标志
(parted) mklabel gpt
警告: 现有 /dev/sda 上的磁盘卷标将被销毁,而所有在这个磁盘上的数据将会丢失。您要继续吗?
是/Yes/否/No? yes
(parted) mkpart sda1
文件系统类型? [ext2]? ext3
起始点? 1
结束点? 4T
(parted) print
型号:AVAGO MR9460-8i (scsi)
磁盘 /dev/sda:4800GB
扇区大小 (逻辑/物理):512B/4096B
分区表:gpt
磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
1 1049kB 4000GB 4000GB ext3 sda1
parted命令使用介绍:parted的详解及常用分区使用方法
3.lvm管理操作硬盘空间
lvm 磁盘管理:(高容量服务器推荐)openeuler 12.3 : 使用LVM管理硬盘__lucky_fd的博客-CSDN博客_lvm查看硬盘
1. 创建物理卷
[root@localhost /]# pvcreate /dev/sda1
WARNING: ext4 signature detected on /dev/sda1 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/sda1.
Physical volume "/dev/sda1" successfully created.
[root@localhost /]# pvdisplay
--- Physical volume ---
PV Name /dev/sdb3
VG Name openeuler
PV Size <445.04 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 113929
Free PE 10505
Allocated PE 103424
PV UUID htBru7-C2tV-Amma-fmUG-F90v-i29b-72IlQh
"/dev/sda1" is a new physical volume of "<3.64 TiB"
--- NEW Physical volume ---
PV Name /dev/sda1
VG Name
PV Size <3.64 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID KiKrPu-Ebih-VBNY-ClLa-ALEi-ElbZ-WvVm6z
2. 创建卷组
[root@localhost /]# vgcreate data /dev/sda1
Volume group "data" successfully created
[root@localhost /]# vgdisplay
--- Volume group ---
VG Name openeuler
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <445.04 GiB
PE Size 4.00 MiB
Total PE 113929
Alloc PE / Size 103424 / 404.00 GiB
Free PE / Size 10505 / <41.04 GiB
VG UUID t7IM2T-Uzl8-ZrX6-c6s9-yZfZ-EmKb-XnLVKr
--- Volume group ---
VG Name data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <3.64 TiB
PE Size 4.00 MiB
Total PE 953673
Alloc PE / Size 0 / 0
Free PE / Size 953673 / <3.64 TiB
VG UUID 0wn2DD-pdpK-X0U1-mN71-x33w-7lk9-2X9OxW
3. 创建逻辑卷
[root@localhost /]# lvcreate -L 3.5T -n home data
Logical volume "home" created.
[root@localhost /]# lvdisplay
--- Logical volume ---
LV Path /dev/openeuler/root
LV Name root
VG Name openeuler
LV UUID fpgxmI-PZbf-jlrx-0oqD-V6Ol-0Zhh-ffcU9D
LV Write Access read/write
LV Creation host, time localhost, 2022-07-18 10:06:26 +0800
LV Status available
# open 1
LV Size 400.00 GiB
Current LE 102400
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/openeuler/swap
LV Name swap
VG Name openeuler
LV UUID U1vleL-4RBm-cGvW-zXL3-Hdx1-SNDE-wuRjWy
LV Write Access read/write
LV Creation host, time localhost, 2022-07-18 10:06:31 +0800
LV Status available
# open 2
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/data/home
LV Name home
VG Name data
LV UUID XXHn2z-lyGo-V18H-uD3k-JiMK-Z3hb-5uTUZK
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2022-08-03 11:14:17 +0800
LV Status available
# open 0
LV Size 3.50 TiB
Current LE 917504
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
4. 挂载文件系统
[root@localhost /]# mkfs -t ext4 /dev/data/home
mke2fs 1.45.6 (20-Mar-2020)
创建含有 939524096 个块(每块 4k)和 234881024 个inode的文件系统
文件系统UUID:5d18cc10-1fc5-4feb-a18b-e62e2b91802a
超级块的备份存储于下列块:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
正在分配组表: 完成
正在写入inode表: 完成
创建日志(262144 个块)完成
写入超级块和文件系统账户统计信息: 已完成
5. 查看硬盘分区:lsblk 或fdisk -l
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 4.4T 0 disk
└─sda1 8:1 0 3.6T 0 part
└─data-home 253:2 0 3.5T 0 lvm
sdb 8:16 0 446.6G 0 disk
├─sdb1 8:17 0 600M 0 part /boot/efi
├─sdb2 8:18 0 1G 0 part /boot
└─sdb3 8:19 0 445G 0 part
├─openeuler-root 253:0 0 400G 0 lvm /
└─openeuler-swap 253:1 0 4G 0 lvm [SWAP]
4. 硬盘分区挂载到目录
(一)手动挂载(重启失效)
# mount /dev/data/home /home
(二)开机自动挂载
1. 执行blkid命令查询逻辑卷的信息
[root@localhost ~]# blkid /dev/data/home
/dev/data/home: UUID="5d18cc10-1fc5-4feb-a18b-e62e2b91802a" BLOCK_SIZE="4096" TYPE="ext4"
2. vi /etc/fstab命令编辑fstab文件
[root@localhost ~]# vim /etc/fstab
3. 在文件最后添加以下内容
/dev/data/home /home ext4 defaults 1 2
内容说明如下:
第一列:逻辑卷的UUID或逻辑卷路径。
第二列:文件系统的挂载目录 。
第三列:文件系统的文件格式,此处填写1查询的 ext4 。
第四列:挂载选项,此处以“defaults”为例;
第五列:备份选项,设置为“1”时,系统自动对该文件系统进行备份;设置为“0”时,不进行备份。此处以“0”为例;
第六列:扫描选项,设置为“1”时,系统在启动时自动对该文件系统进行扫描;设置为“0”时,不进行扫描。此处以“0”为例。参考链接: /etc/fstab详解
4. 验证挂载功能
- 执行如下命令,将/etc/fstab文件所有内容重新加载。
# mount -a
2. 执行命令lsblk,查看硬盘挂载情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 446.6G 0 disk
├─sda1 8:1 0 600M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 445G 0 part
├─openeuler-root 253:0 0 400G 0 lvm /
└─openeuler-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 4.4T 0 disk
└─sdb1 8:17 0 3.6T 0 part
└─data-home 253:2 0 3.5T 0 lvm /home
显示分区/dev/data/home已挂载到/home目录 ,说明成功
二、home目录重新挂载到其他硬盘空间
通过上面的知识,相信我们大概明白了系统是如何操作硬盘的。现在要把home目录挂载到其他硬盘就很简单了,只需要将原来的home目录先解除挂载,在重新挂载到新的硬盘分区上就行了。下面说一下详细步骤
实际操作时为了保留原home目录的数据,我们需要稍微绕一下多走几步。
1.新建目录,作为跳板目录
[fd@localhost ~]$ sudo mkdir /newhome
2. 将分区挂载到新建目录
$ mount /dev/data/home /newhome
3. 将原要挂载的目录中所有文件复制到新目录,存储到/dev/data/home空间
# cp -r /home/* /newhome/
4. 强制删除原目录下所有文件,并解除挂载(为root目录扩容做准备)
# rm -rf /home/*
# umount /home
5. 将/dev/data/home硬盘分区挂载到/home目录
$ umount /newhome
$ mount /dev/data/home /home
这里你会发现之前的/newhome目录文件已经全部转移过来了,这是因为数据是存在硬盘上的,硬盘挂载到其他目录,会自动将硬盘上数据一起指向挂载的目录。
6. 强制删除已经失去作用的跳板目录
# rm -rf /newhome
7. /etc/fstab文件:设置开机自动挂载配置文件(参考第一条第四点)
三、root目录扩容
思路:我们首先要明白实际使用的内存空间都是逻辑卷,逻辑卷再格式化成不同的文件系统,通过挂载就可以使用,操作内存就是操作逻辑卷组的大小。前面我们的home目录是直接挂载到其他硬盘上的,所以这里可以把原home的逻辑卷空间全部分配给root目录;如果只是从home目录分一部分到root目录,就需要先备份home数据,删除/home文件系统所在的逻辑卷,增大/文件系统所在的逻辑卷,增大/文件系统大小,最后再新建 /home文件系统所在的逻辑卷 。
这里展示后面一种情况的操作流程:
1.备份home数据
2. 终止home目录所有进程,注意操作目录不要在home目录下
$ fuser -km /home
3. 取消挂载
# umount /home
4. 删除/home所在的逻辑卷lv:/dev/openeuler/home是逻辑卷路径
[root@localhost /]# lvremove /dev/openeuler/home
5. lsblk查看磁盘空间情况
这里可以看到磁盘分区sda3的空间为445G,root逻辑卷被分配了400G。还剩40G的空间没有使用
6. 扩大逻辑卷大小
$ lvextend -L +400G /dev/openeuler/root
- -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节。
7. 扩大/文件系统
根据版本使用命令,7以上使用xfs_growfs,7以下使用resize2fs
$ resize2fs /dev/openeuler/root
8.df -h查看扩容后的情况
[root@localhost /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 63G 0 63G 0% /dev
tmpfs 64G 1.1M 64G 1% /dev/shm
tmpfs 26G 73M 26G 1% /run
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/mapper/openeuler-root 394G 43G 334G 12% /
tmpfs 64G 9.1M 64G 1% /tmp
/dev/sda2 976M 73M 836M 9% /boot
/dev/sda1 599M 6.4M 593M 2% /boot/efi
/dev/mapper/data-home 3.5T 12G 3.3T 1% /home
tmpfs 13G 1.2M 13G 1% /run/user/980
tmpfs 13G 1.2M 13G 1% /run/user/1001
tmpfs 13G 1.2M 13G 1% /run/user/0
9. 重建/home文件系统所需要的逻辑卷
这里只提供了一个思路和大致过程,中间遇到的问题还是需要自己去解决。欢迎沟通交流
过程遇到问题的解决方案 :
【openeuler 21.3】格式化磁盘提示被系统占用__lucky_fd的博客-CSDN博客
mount: /n_home: 未知的文件系统类型“LVM2_member”. 问题解决__lucky_fd的博客-CSDN博客