1. 背景
最近需要使用 Linux 搭建一个 NFS 服务器,主要用于 K8S 的日志和配置的持久化。但是考虑所需容量会比较大,所以通过在系统中挂载磁盘的方式进行处理。
挂载磁盘的话目前有两种方案:
这里的物理磁盘其实也并不是真的物理磁盘,也是通过虚拟化平台新建的磁盘。
-
直接挂载硬盘
适合简单、对性能要求高但不需要频繁调整存储布局的系统,如数据分析、日志收集服务器等场景。
-
挂载 LVM(逻辑卷管理器) 的逻辑磁盘
适合需要灵活性和复杂存储管理的场景,如数据库服务器、大型应用程序或虚拟化环境。它提供了扩展性、卷快照、条带化等高级功能,但会带来一些性能开销。
从长远来看 LVM 是最佳方案,灵活性非常高,在线扩容的话速度也非常快。
不管是哪种方案,挂载的方法都是一样的;这里为了简单操作,以直接挂载磁盘到指定目录为例。
2. 创建新的磁盘
先使用虚拟化平台创建一个新的磁盘,例如创建一个 100 GB 的新硬盘。
通过 lsblk
查看磁盘是否添加成功:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─rl-root 253:0 0 17G 0 lvm /
└─rl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 100G 0 disk
sr0 11:0 1 1024M 0 rom
这里多了一个 sdb
100G,可以看到系统已经识别到新增加的硬盘了。
3. 创建挂载点
在 Linux 系统中,通常将新磁盘挂载到 /mnt
或 /media
目录下。
sudo mkdir /mnt/nfs-dir
4. 格式化新磁盘(如果尚未格式化)
将新磁盘格式化为 ext4
:
sudo mkfs.ext4 /dev/sdX1 # sdX1 替换为实际设备名称
# 例如为上面的 sdb,则命令为:
sudo mkfs.ext4 /dev/sdb
/dev
目录是Linux
系统中的一个特殊目录,存放所有与设备相关的文件。它的作用是为系统中的各种硬件设备提供接口,使这些设备能够像普通文件一样被访问和操作。
还可以格式化为其他格式,根据实际情况确定,下面列出常见的格式:
# ext3 文件系统:
sudo mkfs.ext3 /dev/sdX1
# ext2 文件系统
sudo mkfs.ext2 /dev/sdX1
# XFS 文件系统(适合大文件和高性能场景)
sudo mkfs.xfs /dev/sdX1
# FAT32 文件系统(适合跨平台使用,如与 Windows 和 macOS 共享)
sudo mkfs.vfat /dev/sdX1
# NTFS 文件系统(主要用于与 Windows 共享数据)
sudo mkfs.ntfs /dev/sdX1
# exFAT 文件系统(适合大文件和跨平台使用)
sudo mkfs.exfat /dev/sdX1
5. 挂载新磁盘
常用语法:mount [选项] <设备> <挂载点>
以上面的 sdb
为例:
# 将新的硬盘挂载到 /mnt/nfs-dir 目录下
sudo mount /dev/sdb /mnt/nfs-dir
挂载完成后,就可以在 /mnt/nfs-dir
目录下操作对应的硬盘了。
mount
会自动识别磁盘的文件系统类型,一般不需要特殊指定,如果无法自动识别文件系统类型,可以通过 -t
选项来制定,例如指定为 ext4
:
sudo mount -t ext4 /dev/sda1 /mnt/nfs-dir
6. 开机自启(可选)
如果要在启动时自动挂载,可以编辑 /etc/fstab
文件:
/dev/sdX1 /mnt/nfs-dir ext4 defaults 0 2
挂载后,可以将 NFS
共享目录设置在该挂载点上。
想了解更多 /etc/fstab
文件的配置,可参考文章:Linux 再入门整理:详解 /etc/fstab 文件
7. 卸载磁盘
卸载网络文件系统(NFS
)时,命令与本地文件系统是一样的。
- 通过挂载点卸载
sudo umount /mnt/nfs-dir
- 通过设备名称卸载
sudo umount /dev/sdb
这里是挂载了一个新磁盘,如果是挂载 NFS 到指定目录也是可以的。