Linux 超大规模数据盘初始化技巧

在处理超大规模数据盘时,Linux系统管理员需要掌握一些高效的初始化技巧,以确保数据盘的性能和稳定性。本文将详细介绍如何使用fdiskparted工具进行数据盘的初始化,包括分区创建、格式化以及挂载等步骤。

使用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

  1. mkfs.ext4命令来自英文词组make filesystem Ext4的缩写,其功能是对磁盘设备进行EXT4格式化操作。
相关推荐
小林熬夜学编程19 分钟前
【MySQL】第九弹---掌握SQL关键操作:更新、删除、插入与聚合分析的秘诀
linux·开发语言·数据库·mysql
_extraordinary_6 小时前
Linux基本指令(三)+ 权限
linux·运维·服务器
WalkingWithTheWind~6 小时前
Linux搭建Nginx直播流媒体服务RTMP/RTSP转Http-flv视频浏览器在线播放/Vue/Java/ffmpeg
java·linux·nginx·ffmpeg·vue·http-flv·rtsp
青春:一叶知秋7 小时前
Reactor模型说明
运维·服务器
和舒貌8 小时前
Linux系统编程基础详解
linux·运维·服务器·基础
Jack魏9 小时前
Linux MySQL 8.0.29 忽略表名大小写配置
linux·mysql·mysql8·mysql常见问题
ctrigger10 小时前
AI回答:Linux C/C++编程学习路线
linux·c语言·c++
蛊明11 小时前
下载CentOS 10
linux·运维·centos
北京-宏哥11 小时前
Linux系统安装MySQL5.7(其他版本类似)避坑指南
linux·运维·服务器
Aphelios38011 小时前
Linux 下 VIM 编辑器学习记录:从基础到进阶(下)
java·linux·学习·编辑器·vim