Home

Linux 创建 NFS 存储

这篇文章记录在 Linux 环境中快速搭建 NFS 共享目录,并用于 DB2 数据迁移的做法。示例里假设 NFS 服务器地址为 192.168.1.100,共享目录为 /data/db2migrate

服务端配置

先在存储节点上把共享目录准备好。

1. 安装服务

yum install -y nfs-utils

# Ubuntu/Debian
apt-get install -y nfs-kernel-server

2. 创建目录并授权

如果这块共享目录后面要被 DB2 实例用户直接读写,最稳妥的做法是保证源端和目标端的实例用户 UID 一致。临时迁移环境里,也可以先通过宽松权限把流程跑通。

mkdir -p /data/db2migrate
chmod 777 /data/db2migrate

3. 配置共享规则

编辑 /etc/exports 文件,添加以下行,并把网段替换为实际环境:

/data/db2migrate 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)

这里几个常用参数分别表示:

  • rw:允许读写
  • sync:同步写入,安全性更高
  • no_root_squash:允许客户端 root 保持 root 身份
  • no_subtree_check:减少子目录检查带来的额外限制

4. 启动服务

systemctl enable --now nfs-server
exportfs -arv

客户端挂载

源服务器和目标服务器都需要挂载同一份 NFS 目录,这样迁移文件才能在两边共享。

1. 安装客户端工具

yum install -y nfs-utils  # 或 apt-get install nfs-common

2. 创建挂载点

mkdir -p /mnt/db2_backup
chown db2inst1:db2iadm1 /mnt/db2_backup

3. 执行挂载

考虑到 DB2 迁移过程中往往会处理较大的数据文件,挂载参数建议尽量稳一点。

mount -t nfs -o rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,nolock 192.168.1.100:/data/db2migrate /mnt/db2_backup

其中几个关键参数的意义如下:

  • hard,intr:NFS 短暂异常时不直接返回 I/O 错误
  • rsize,wsize:增大读写块大小,适合大文件传输
  • tcp:比 UDP 更稳
  • nolock:减少迁移过程中因锁机制带来的干扰

DB2 迁移流程

1. 在源机导出

在源端切换到 DB2 实例用户后执行导出:

su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> export

2. 在目标机加载

目标端挂载好同一目录后,确认目标库的表结构和表空间已准备完成,再执行:

su - db2inst1
cd /mnt/db2_backup
db2move <DBNAME> load

注意事项

做这类迁移时,最常见的问题一般集中在下面几项:

  • 磁盘空间要提前预留充足,避免导出到一半被打满。
  • 尽量走内网或专用网络,不要占用公网带宽。
  • 如果 db2move 没法创建文件,优先检查挂载目录权限和 UID 映射。
  • 如果客户端挂载失败,记得检查 NFS 相关端口和防火墙放行情况。

总结

这篇文章的核心思路其实很简单:在服务端准备一块稳定的共享目录,让源端和目标端都挂载到同一路径,再把 db2move 的导出和导入都落到这块共享存储上。真正决定是否顺利的,通常不是命令本身,而是权限、网络和空间是否提前准备到位。

Linux 网络 存储