在处理超大规模数据盘时,Linux系统管理员需要掌握一些高效的初始化技巧,以确保数据盘的性能和稳定性。本文将详细介绍如何使用fdisk
和parted
工具进行数据盘的初始化,包括分区创建、格式化以及挂载等步骤。
使用fdisk
进行数据盘初始化
查看当前硬盘及分区情况
首先,使用fdisk -l
命令查看当前系统中所有的硬盘及分区情况,这有助于了解当前的存储资源分布。
bash
fdisk -l
创建新分区
使用fdisk
对指定硬盘进行分区操作。例如,如果要在/dev/sdb
硬盘上创建新分区,可以使用以下命令:
bash
[root@master ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x38717fc1.
# ----------------------------------
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free) # 主分区
e extended # 扩展分区
# ----------------------------------
Select (default p): p
Partition number (1-4, default 1): 1 # 主分区编号
First sector (2048-209715199, default 2048): # 起始磁柱指,默认为2048
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): # 截止磁柱值
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help): w # 输入w进行保存
在fdisk
的提示下,输入n
来创建新分区。对于超大规模数据盘,推荐使用GPT分区表,因为它支持的磁盘容量远大于MBR分区表。在创建分区时,选择合适的分区类型(p
表示主分区)和大小。对于超过2TB的磁盘,务必使用GPT分区表。
格式化分区
创建分区后,需要对新分区进行格式化。使用mkfs.ext4
^1^命令对新分区(如/dev/sdb1
)进行格式化:
bash
mkfs.ext4 /dev/sdb1
挂载分区
创建挂载目录(例如/data1
),并使用blkid
命令查询新分区的UUID,然后编辑/etc/fstab
文件,将分区信息添加到文件中,以实现开机自动挂载。
bash
blkid /dev/sdb1
UUID=<查询到的UUID> /data1 ext4 defaults 0 2
第一列为UUID,此处填写1中查询到的磁盘分区的UUID。 第二列为磁盘分区的挂载目录,可以通过df -TH命令查询。 第三列为磁盘分区的文件系统格式, 可以通过df -TH命令查询。 第四列为磁盘分区的挂载选项,此处通常设置为defaults即可。 第五列为Linux dump备份选项。
- 0表示不使用Linux dump备份。现在通常不使用dump备份,此处设置为0即可。
- 1表示使用Linux dump备份。
第六列为fsck选项,即开机时是否使用fsck检查磁盘。 0表示不检验。挂载点为(/)根目录的分区,此处必须填写1。 根分区设置为1,其他分区只能从2开始,系统会按照数字从小到大依次检查下去。
最后,使用mount -a
命令加载所有在/etc/fstab
中配置的分区。
使用parted
进行数据盘初始化
查看新增数据盘
使用lsblk
命令查看系统中新增的数据盘,以便进行后续操作。
bash
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 368K 0 rom
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
nvme0n1 259:0 0 7.3T 0 disk
执行分区操作
使用parted
对新增数据盘进行分区操作。例如,对/dev/nvme0n1
进行操作:
bash
[root@master ~]# parted /dev/nvme0n1
GNU Parted 3.1
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
# ------------
(parted) p # 查看当前磁盘分区形式
(parted) mklabel gpt # 设置磁盘分区形式为GPT
(parted) unit s # 设置磁盘的计量单位为磁柱
(parted) mkpart data0 2048s 100% # 创建一个分区
# ------------
(parted) p
Model: Unknown (unknown)
Disk /dev/nvme0n1: 15628053168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 2048s 15628052479s 15628050432s ext4 data0
(parted) q # 退出parted分区工具
Information: You may need to update /etc/fstab.
在parted
中,首先使用p
命令查看当前分区表,然后使用mklabel gpt
将分区表设置为GPT。接下来,使用mkpart
命令创建新分区,指定分区的起始和结束位置。
分区后的磁盘信息
bash
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 368K 0 rom
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
nvme0n1 259:0 0 7.3T 0 disk
└─nvme0n1p1 259:1 0 7.3T 0 part
设置分区文件系统
使用mkfs
命令为新分区设置文件系统。例如,设置为ext4
文件系统:
bash
mkfs -t ext4 /dev/nvme0n1p1
挂载分区
最后,使用mount
命令将新分区挂载到指定目录(如/data0
)。
bash
mount /dev/nvme0n1p1 /data0
与fdisk
方法相同,需要更新/etc/fstab
文件以实现开机自动挂载。
最佳实践
- 对于超大规模数据盘,始终使用GPT分区表以支持更大的磁盘容量。
- 在创建分区时,合理规划分区大小和数量,以满足不同的存储需求。
- 定期检查和维护分区表和文件系统,确保数据的完整性和可靠性。
- 考虑使用LVM(逻辑卷管理)来提高存储管理的灵活性和扩展性。
通过以上步骤和最佳实践,Linux系统管理员可以高效地初始化和管理超大规模数据盘,从而为企业提供稳定可靠的存储解决方案。
Footnotes
- mkfs.ext4命令来自英文词组make filesystem Ext4的缩写,其功能是对磁盘设备进行EXT4格式化操作。 ↩