简介: 公司使用的服务器的硬盘用的是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. 验证挂载功能

  1.  执行如下命令,将/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博客

mount: /n_home: 文件系统类型错误、选项错误、/dev/mapper/openeuler-home 上有坏超级块、缺少代码页或帮助程序或其他错误.问题解决__lucky_fd的博客-CSDN博客

fstab自动挂载_挂载错误导致系统无法启动的解决方法

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐