修改群晖存储池及存储空间顺序

  这是一个教程给需要更改群晖NAS存储池以及存储空间顺序的人,适用于以下情况:

  • 强迫症患者
  • 故障修复
  • 迁移后恢复
  • 其他需要更改存储池或存储空间顺序的原因

本文仅适用于DSM 6用户,DSM7已失效

你可以在这里找到其他语言的版本:简体中文English

使用须知

  请务必先完整阅读后在操作,并确保你具有以下知识:

  • 熟悉群晖DSM系统
  • 熟练的Linux运维技术
  • 了解RAID原理
  • 了解LVM原理
  • 明白数据是无价的

准备工作

  1. 尽可能备份涉及需要修改顺序的存储空间内的数据(如果你愿意承担一点小风险,可以跳过这一步)
  2. 启用SSH功能(控制面板->终端机和SNMP->终端机->启动SSH功能)
  3. 使用你喜欢的工具SSH连接至群晖NAS
  4. 提升至root权限
1
sudo su root

更改存储池顺序

  修改存储池顺序是非常安全的,理论上不会造成数据丢失损坏或系统崩溃的情况,因为存储池只是一个逻辑上的名称。如果你只需要修改存储池,可以不备份数据。

  1. 查看现有存储池列表
1
2
3
4
5
6
7
8
9
synospace --meta -e
> [/dev/md3]
> ---------------------
> Descriptions=[希捷 酷狼6T Basic]
> Reuse Space ID=[reuse_2]
> [/dev/md2]
> ---------------------
> Descriptions=[希捷 酷狼 4T Basic]
> Reuse Space ID=[reuse_1]
  1. 修改存储池顺序

  命令格式:synospace --meta -s -d "{存储池描述}" -i reuse_{存储池ID} {设备路径}
  例如将上述[存储池2]重新编号至[存储池3],则输入以下命令:

1
2
synospace --meta -s -d "希捷 酷狼6T Basic" -i reuse_3 /dev/md3
> success to set meta (希捷 酷狼6T Basic,reuse_3) into space [/dev/md3]

  注意:可以不添加-d参数指定存储池描述,如此存储池描述会被清空,但是你可以随时在DSM中修改存储池描述(存储空间管理员->存储池->动作->更改设置)

  1. 在DSM中可以发现存储池顺序已被修改

更改存储空间顺序

  修改存储空间顺序后,可能会造成iSCSI服务启动失败,重新启动iSCSI target即可恢复,亦可能会产生其他未知问题,故务必注意数据备份。

  1. 停止所有Docker容器
  2. 停止所有群晖服务,这个命令可能会执行一段时间,务必耐心等待
1
syno_poweroff_task -d
  1. 查看存储空间位于的存储池是否支持支持多个存储空间(存储空间管理员->存储池->展开)

  对于支持多个存储空间的存储池,群晖将磁盘分区设置为一个LVM PV(Physical Volume),并在此PV上单独创建一个VG(Volume Group),因此在这个VG上可以创建多个LV(Logical Volume),亦可以自由调整这些LV的大小,LV即为存储空间,因此修改LV的名称即可达到修改存储空间顺序的目的。

  1. 查看现有存储空间列表
1
2
3
4
lvm lvscan
> ACTIVE '/dev/vg1/syno_vg_reserved_area' [12.00 MiB] inherit
> ACTIVE '/dev/vg1/volume_2' [256.00 GiB] inherit
> ACTIVE '/dev/vg1/volume_3' [1.00 TiB] inherit
  1. 修改存储空间顺序

  命令格式:lvm lvrename {VG名称} {旧LV名称} {新LV名称}
  例如将上述[存储空间2]修改为[存储空间3],[存储空间3]修改为[存储空间4],则输入以下命令:

1
2
3
4
lvm lvrename vg1 volume_3 volume_4
> Renamed "volume_3" to "volume_4" in volume group "vg1"
lvm lvrename vg1 volume_2 volume_3
> Renamed "volume_2" to "volume_3" in volume group "vg1"

  对于不支持多个存储空间的存储池,群晖直接将存储空间应用于整个磁盘分区上,因此无法调整大小,或增加多个空间,为此我们直接修改群晖内部的编号。

  1. 查看现有存储空间列表
1
2
3
4
5
6
7
8
9
spacetool --synoblock-enum
> ****** Syno-Block of /dev/sda ******
> Version: 5
> Space Type: Volume
> Space Path: /volume1
>****** Syno-Block of /dev/sdb ******
> Version: 5
> Space Type: Volume
> Space Path: /volume2
  1. 修改存储空间顺序

  命令格式:synospace --synoblock -s {设备路径} -v volume_{存储空间编号}
  例如将上述[存储空间1]与[存储空间2]编号互换,则输入以下命令:

1
2
3
4
5
synospace --synoblock -s /dev/sda -v volume_2
> success to set syno-block on disk '/dev/sda'

synospace --synoblock -s /dev/sdb -v volume_1
> success to set syno-block on disk '/dev/sdb'
  1. 重启(DSM内的重启可能会失效,需要执行reboot命令)
  2. 共享文件夹以及iSCSI服务应已自动修改,检查各服务是否正常

参考文献