DZ插件网数据ftp磁盘扩容(普通分区至LVM)[记录笔记]
一、背景说明[*]原 /home/ftp-storage 由 /dev/sdb1 提供,挂载方式为 普通 ext4 分区,未使用 LVM;
[*]该目录作为 FTP 数据目录,由 Docker 容器 brave_solomon 使用;
[*]数据使用量达到 100%,无剩余空间导致ftp无法上传大文件等,影响重要业务;
[*]系统原有一块未挂载及格式化的物理磁盘 /dev/sdc,计划将其与原盘整合,并将 /home/ftp-storage 升级为 LVM 逻辑卷以方便后续扩容,最终实现无数据丢失的扩容操作(7.3T → 15T)。
**** Hidden Message *****
二、扩容目标
项目
目标值
挂载路径/home/ftp-storage
原始设备/dev/sdb1,ext4
新逻辑卷设备/dev/vg_ftp/lv_ftp,ext4,LVM格式
最终容量~15T(合并 /dev/sdc 和 /dev/sdb1)
容器路径变动无变动,继续使用原路径挂载,无需修改容器配置
三、操作流程步骤 1:准备新盘 /dev/sdc 并初始化 LVM
pvcreate /dev/sdc
vgcreate vg_ftp /dev/sdc
lvcreate -n lv_ftp -l 100%FREE vg_ftp
mkfs.ext4 /dev/vg_ftp/lv_ftp
步骤 2:数据迁移到新逻辑卷
mkdir /mnt/new_ftp
mount /dev/vg_ftp/lv_ftp /mnt/new_ftp
rsync -aAXv /home/ftp-storage/ /mnt/new_ftp/
步骤 3:停服务 + 增量同步
docker stop brave_solomon
rsync -aAXv --delete /home/ftp-storage/ /mnt/new_ftp/
步骤 4:切换挂载点至新 LVM 卷
umount /home/ftp-storage
mount /dev/vg_ftp/lv_ftp /home/ftp-storage
修改 /etc/fstab:
# 原:
# UUID=2df05bdd-aaa3-4598-8a9a-6f5d835fbfed /home/ftp-storage ext4 defaults 0 0
# 现:
/dev/vg_ftp/lv_ftp/home/ftp-storageext4defaults0 2
确认挂载:
mount -a
df -h | grep ftp-storage
步骤 5:将原盘 /dev/sdb1 并入卷组,实现扩容
pvcreate /dev/sdb1
vgextend vg_ftp /dev/sdb1
lvextend -l +100%FREE /dev/vg_ftp/lv_ftp
resize2fs /dev/vg_ftp/lv_ftp
四、最终验证结果
检查项
结果
df -h 显示容量/home/ftp-storage 容量约为 15T
已用空间保持约 6.9T,与原数据一致
容器重启情况docker restart brave_solomon 后服务正常
fstab 自动挂载测试 mount -a 成功,系统重启后可自动挂载
root@PowerEdge-R740xd:~# df -h | grep ftp-storage
/dev/mapper/vg_ftp-lv_ftp 15T6.9T7.0T50% /home/ftp-storage
作为DZ插件网的技术助理,我将从专业角度分析这个磁盘扩容方案并提供优化建议:
1. 方案评估:
- 该方案整体流程合理,符合LVM扩容的标准操作流程
- 采用rsync进行数据迁移能确保数据完整性
- 增量同步和停机窗口控制得当
2. 优化建议:
a) 数据安全方面:
- 建议在执行pvcreate前先使用`fdisk -l`确认/dev/sdc确实是目标磁盘
- rsync命令可增加`--progress`参数显示实时进度
- 首次rsync后可增加`diff -r`对比确认数据一致性
b) LVM配置优化:
- vgcreate时可指定PE大小:`vgcreate -s 64M vg_ftp /dev/sdc`
- lvextend时建议使用`-r`参数自动调整文件系统:`lvextend -r -l +100%FREE /dev/vg_ftp/lv_ftp`
c) 容器服务方面:
- 建议在docker stop前先执行`docker pause`短暂暂停服务
- 可考虑使用`--volumes-from`检查容器挂载点是否正常
3. 针对Discuz环境的特别注意事项:
- 如果这是Discuz附件存储目录,扩容后需检查:
- UCenter的附件设置是否正确
- 论坛后台的附件目录权限(建议保持为www-data用户)
- 更新Discuz的attachment表存储路径(如有变更)
4. 后续维护建议:
- 可设置LVM监控:`lvdisplay -m vg_ftp/lv_ftp`
- 建议添加`/etc/fstab`的nofail选项防止启动失败:`defaults,nofail 0 2`
- 可考虑设置ext4的保留块比例:`tune2fs -m 1 /dev/vg_ftp/lv_ftp`
5. 回滚方案:
- 如操作失败,可:
1. 重新挂载原分区:`mount /dev/sdb1 /home/ftp-storage`
2. 恢复fstab配置
3. 启动容器:`docker start brave_solomon`
这个方案实施后,DZ插件网的FTP存储将获得更好的扩展性,后续可通过`lvextend`轻松扩容。如需进一步优化Discuz的附件存储性能,我们还可以探讨使用XFS文件系统或对象存储方案。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]