创建操作大于 2T 的分区 一般情况下,我们都是选择使用 fdisk 工具来进行分区,但是目前在实际生产环境中 使用的磁盘空间越来越大,呈 TiB 级别增长;而常用的 fdisk 这个工具对分区是有大 小限制的,它只能划分小于 2T 的磁盘,所以在划大于 2T 磁盘分区的时候 fdisk 就 无法满足要求了;这个时候有 2 个方法,其一是通过卷管理来实现,其二就是通过 parted 工具来实现对 GPT 磁盘进行分区操作;这里我们采用 parted 的方法来实现 管理。parted 的 2 种使用方式
交互式 手动按序交互式的创建; 非交互式 可将命令行写在脚本中,运行脚本实现一键创建;适用于远程批量管理多台主机的场景。 两种方式比较 两种方法的使用和原理其实是一样的;要想实现非交互式创建,无非是在每一个具体 的交互式命令前加上 parted DEVICES_NAME 即可。parted 实现分区管理实践 实验环境
操作系统 :CentOS 7.5
磁盘信息 :待管理磁盘 /dev/sdb
磁盘总大小:18T
分区需求: 将整个/dev/sdb 划分到同一个分区里,并挂载到**/gfsdata01 目录下。
选择操作磁盘 parted 命令后跟上欲操作磁盘的名字即可选择此设备进行操作。
[root@kvm ~]# parted /dev/sdb GNU Parted 3.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands.新建磁盘标签类型为 GPT
因为 parted 命令只能针对 gpt 格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式 设为 gpt。
(parted) mklabel gpt分区
命令格式
mkpart PART-TYPE [FS-TYPE] START END
PART-TYPE(分区类型)
primary 主分区 logical 逻辑分区 extended 扩展分区
FS-TYPE(文件系统类型)
ext4 ext3 ext2 xfs 其他…
START
设定磁盘分区起始点;可以为 0,numberMiB/GiB/TiB;
0 设定当前分区的起始点为磁盘的第一个扇区;
1G 设定当前分区的起始点为磁盘的 1G 处开始;
END
设定磁盘分区结束点;
-1 设定当前分区的结束点为磁盘的最后一个扇区;
10G 设定当前分区的结束点为磁盘的 10G 处;
将/dev/sdb 整个空间分给同一个分区
(parted) mkpart primary 0 -1 Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I (parted) p Model: AVAGO AVAGO (scsi) Disk /dev/sdb: 18.0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 17.4kB 18.0TB 18.0TB primary (parted) q Information: You may need to update /etc/fstab.格式化分区
因为整个/dev/sdb 只分了一个区,则这个分区名默认会分配为/dev/sdb1;使用 mkfs 命令将/dev/sdb1 分区格式化为 ext4。
[root@kvm ~]# mkfs -t ext4 /dev/sdb1 mke2fs 1.42.9 (28-Dec-2013) /dev/sdb1 alignment is offset by 244736 bytes. This may result in very poor performance, (re)-partitioning suggested. Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=64 blocks, Stripe width=64 blocks 274659328 inodes, 4394530311 blocks 219726515 blocks (5.00%) reserved for the super user First data block=0 134111 block groups 32768 blocks per group, 32768 fragments per group 2048 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 2560000000, 3855122432 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done设定分区 label(非必要)
[root@kvm ~]# e2label /dev/sdb1 /gfsdata01创建挂载目录
[root@kvm ~]# mkdir /gfsdata01临时挂载分区
[root@kvm ~]# mount /dev/sdb1 /gfsdata01开机自动挂载(永久挂载)
即修改/etc/fstab 文件。
echo '/dev/sdb1 /gfsdata01 ext4 defaults 0 0' >>/etc/fstab非交互式方式实现脚本
适用于需要在多台主机上进行同样的分区操作,可以通过 ansible 工具调用脚本实现批量 分区配置挂载等操作
[root@kvm ~]# cat ./auto_partition.sh #!/bin/bash # 新建/dev/sdb 的磁盘标签类型为 GPT parted /dev/sdb mklabel gpt # 将/dev/sdb 整个空间分给同一个分区 parted /dev/sdb mkpart primary 0 100% # 忽略警告 ignore # 格式化分区 mkfs -t ext4 /dev/sdb1 # 设定分区 label(非必要) e2label /dev/sdb1 /gfsdata01 # 创建挂载目录 mkdir /gfsdata01 # 临时挂载 mount /dev/sdb1 /gfsdata01 # 开机自动挂载(永久挂载) echo '/dev/sdb1 /gfsdata01 ext4 defaults 0 0'>>/etc/fstab [root@kvm ~]#
https://eco.dameng.com



