跳到主要内容

更换逻辑单元号(LUN)和迁移冗余设备对的磁盘池文件

本节讨论的程序仅适用于PubSub+设备。

本节描述了如何为冗余PubSub+设备对更换逻辑单元号(LUN),然后将磁盘池文件从旧LUN迁移到新LUN,而不会丢失池化的保证消息。更换LUN通常是为了让消息池大小增加而提供更大的LUN。

如果您需要进一步的帮助,或对本程序有任何疑问,请联系Solace。

程序

此程序适用于冗余设备对。如果您想为独立设备迁移LUN,请参见《为独立设备更换LUN和迁移磁盘池文件》。

  • 此程序将禁用冗余对中两个设备上的服务。

  • 为防止任何配置丢失,在执行本程序期间,请不要对冗余对中的任一设备进行任何额外的不相关的配置更改。

  • 我们建议新LUN与旧LUN大小相同或更大。如果新LUN更小,请确保有足够的空间用于从旧LUN复制所有文件——文件必须成功复制,本程序才能成功。

  • 要更换LUN,首先确保当前系统仍能使用旧LUN,然后检查新LUN是否已配置。在将磁盘池文件迁移到新LUN之前,两个LUN必须都在系统中存在。详细信息,请参考《为保证消息配置外部磁盘阵列》。

  • GDisk工具用于创建和修改LUN上的分区。新分区使用ext4文件系统。

  • 下列操作如果说明只能由root执行,也可以由Sysadmin用户执行:

    • 提升到root,输入:

      [support@solace-primary ~]$ su - 密码:

    • 提升到sysadmin用户名myAdmin,输入:

      [support@solace-primary ~]$ su - myAdmin 密码:

要为冗余设备对更换LUN并迁移磁盘池文件,请执行以下步骤:

  1. 确保主设备和备份设备都处于正确的状态:
    1. 在主设备上,运行show message-spool detail命令并验证以下内容:

      • 配置状态为Enabled (Primary)
      • 操作状态为AD-Active
      • 显示了主备磁盘的有效密钥。具体的密钥值和它们之间的关系不重要,只要为主备密钥都显示了有效值即可。

例如:

solace-primary> show message-spool detail
配置状态: Enabled (Primary)

...

操作状态: AD-Active

...

磁盘内容: 就绪
磁盘密钥(主): 192.168.164.180:8,3
磁盘密钥(备份): 192.168.164.180:7,3

如果主设备没有显示AD-Active状态或没有显示两个磁盘的有效密钥,请按照以下步骤操作。请注意,这将导致服务中断,因为活动会切换到备份设备,然后再切换回主设备。

  1. 在主设备上,运行release-activity冗余配置命令以切换到备份设备。参见释放事件代理活动的说明。

  2. 在主设备上,运行no release-activity冗余配置命令以恢复服务。参见释放事件代理活动的说明。

  3. 在备份设备上,运行redundancy revert-activity管理执行命令以释放活动。参见强制备份放弃活动给主设备的说明。

  4. 重新从第1步开始此程序,以确保主设备现在处于正确的状态。

    1. 在备份设备上,运行show message-spool命令并验证以下内容:

      • 配置状态为Enabled (Backup)
      • 操作状态为AD-Standby

例如:

solace-backup> show message-spool
配置状态: Enabled (Backup)

...

操作状态: AD-Standby
  1. 确定旧LUN的WWN(全球唯一名称)。

    在主设备上输入以下命令。

    solace-primary> show message-spool
    配置状态: Enabled (Primary)
    最大池使用量: 10000 MB
    充电时池化: No
    无闪存卡池化: No
    使用内部磁盘: No
    磁盘阵列WWN: 60:06:01:60:4d:30:1c:00:8e:29:1b:b6:a6:d6:e8:11

    . . .

本程序的示例使用60:06:01:60:4d:30:1c:00:8e:29:1b:b6:a6:d6:e8:11作为旧LUN的WWN。

  1. 在主设备上检测新LUN,请执行以下步骤:

    1. 输入以下命令提升到支持用户,然后输入支持用户的密码。

      solace-primary# shell redundantLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

      [support@solace-primary ~]$ su -
      密码:
    3. 检查当前LUN是否可见。

      [root@solace-primary ~]# multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='2 queue_if_no_path

      . . .

      [root@solace-primary ~]#
    4. 重新扫描SCSI总线以添加新LUN。

      [root@solace-primary ~]# rescan-scsi-bus.sh --nosync -f -r -m
      [root@solace-primary ~]# rescan-scsi-bus.sh -a
    5. 如果前一步失败,输入这些命令:

      [root@solace-primary ~]# rescan-scsi-bus.sh -i -a
      [root@solace-primary ~]# rescan-scsi-bus.sh --nosync -f -r -m
      [root@solace-primary ~]# rescan-scsi-bus.sh -a
    6. 检查新LUN是否已添加。

      [root@solace-primary ~]# multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='2 queue_if_no_path

      . . .

      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw

      . . .

      [root@solace-primary ~]#

    本程序的示例使用60:01:40:57:d2:4f:4b:77:68:14:35:fa:f6:84:d5:87作为新LUN的WWN。

    如果新LUN没有出现,请确认SAN配置正确,并且HBA端口已注册新LUN,然后重新运行rescan-scsi-bus.sh --nosync -f -r -mrescan-scsi-bus.sh -a脚本。如果新LUN没有出现,您必须重启设备。

    1. 返回到CLI:

      [root@solace-primary ~]# exit
      [support@solace-primary ~]$ exit
  2. 在备份设备上检测新LUN,请执行以下步骤:

    1. 输入以下命令提升到支持用户,然后输入支持用户的密码。

      solace-backup# shell redundantLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

      [support@solace-backup ~]$ su -
      密码:
    3. 检查当前LUN是否可见。

      [root@solace-backup ~]# multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='2 queue_if_no_path

      . . .

      [root@solace-backup ~]#
    4. 重新扫描SCSI总线以添加新LUN。

      [root@solace-backup ~]# rescan-scsi-bus.sh --nosync -f -r -m
      [root@solace-backup ~]# rescan-scsi-bus.sh -a
    5. 如果前一步失败,输入这些命令:

      [root@solace-primary ~]# rescan-scsi-bus.sh -i -a
      [root@solace-primary ~]# rescan-scsi-bus.sh --nosync -f -r -m

      [root@solace-primary ~]# rescan-scsi-bus.sh -a
    6. 检查新LUN是否已添加。

      [root@solace-backup ~]# sudo multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='2 queue_if_no_path

      . . .

      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw

      . . .

      [root@solace-backup ~]#

    如果新LUN没有出现,请确认SAN配置正确,并且HBA端口已注册新LUN,然后重新运行rescan-scsi-bus.sh --nosync -f -r -mrescan-scsi-bus.sh -a脚本。如果新LUN没有出现,您必须重启设备。

    1. 返回到CLI:

      [root@solace-backup ~]# exit
      [support@solace-backup ~]$ exit
  3. 对新LUN进行分区并创建文件系统。**请确保在继续之前完成此步骤。**详细信息,请参见《为保证消息配置外部磁盘阵列》。

  4. 在主设备和备份设备上,运行以下命令确认新的外部磁盘LUN可用,并由正确的WWN引用(从您的存储管理员那里获取新LUN的WWN):

    solace-primary> show hardware details
    solace-backup> show hardware details

    不要继续进行,直到新LUN可见。

  5. 如果正在使用Config-Sync功能,在主设备和备份设备上输入以下命令确认Config-Sync操作正常:

    solace-primary> show config-sync
    管理状态: Enabled
    操作状态: Up
    solace-backup> show config-sync
    管理状态: Enabled
    操作状态: Up

    为了防止配置丢失,如果Config-Sync操作不正常,请不要继续进行。

  6. 要停止向应用程序提供服务,在备份设备上输入以下命令:

    solace-backup> enable
    solace-backup# configure
    solace-backup(configure)# service msg-backbone shutdown
    所有客户端将被断开连接。
    您想继续吗 (y/n)? y
  7. 在主设备上重复上一步:

    solace-primary> enable
    solace-primary# configure
    solace-primary(configure)# service msg-backbone shutdown
    所有客户端将被断开连接。
    您想继续吗 (y/n)? y
  8. 在主设备上,运行show message-spool detail命令确认:

    • 设备仍然活跃,正常,并且已同步(由操作、数据路径和同步状态指示)
    • 设备已成功清理所有流(由当前使用列中的零指示)
  9. 确保消息池碎片整理不活跃。

    在主设备和备份设备上输入以下命令。

    solace-primary> show message-spool

    . . .

    碎片整理状态: Idle

    . . .
    solace-backup> show message-spool

    . . .

    碎片整理状态: Idle

    . . .

    如果主设备和备份设备的消息池碎片整理状态不是Idle,请等待碎片整理过程完成后再继续。

  10. 要停止保证消息传递,在主设备上输入以下命令:

    solace-primary(configure)# hardware message-spool shutdown
    所有消息池将被停止。
    您想继续吗 (y/n)? y
    solace-primary(configure)# end
  11. 在备份设备上重复上一步:

    solace-backup(configure)# hardware message-spool shutdown
    所有消息池将被停止。
    您想继续吗 (y/n)? y
    solace-backup(configure)# end
  12. 在主设备上,执行以下步骤迁移LUN数据: 如果您不执行此步骤,您必须在稍后编辑最大池使用量后重置主设备上的消息池。重置消息池会导致所有保证消息数据丢失。

    1. 输入以下命令提升到支持用户,然后输入支持用户的密码。

      solace-primary# shell redundantLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

      [support@solace-primary ~]$ su -
      密码:
    3. 使用adkey-tool脚本将旧LUN的p1和p2内的AD密钥迁移到新LUN。 这些分区位于/dev/mapper/下,命名为<wwn><p#>

      [root@solace-primary ~]# adkey-tool migrate --src-device /dev/mapper/<旧LUN wwn>p1 --dest-device /dev/mapper/<新LUN wwn>p1
      [root@solace-primary ~]# adkey-tool migrate --src-device /dev/mapper/<旧LUN wwn>p2 --dest-device /dev/mapper/<新LUN wwn>p2

    例如:

    [root@solace-primary ~]# adkey-tool migrate --src-device /dev/mapper/3600601604d301c008e291bb6a6d6e811p1 --dest-device /dev/mapper/360014057d24f4b77681435faf684d587p1
    [root@solace-primary ~]# adkey-tool migrate --src-device /dev/mapper/3600601604d301c008e291bb6a6d6e811p2 --dest-device /dev/mapper/360014057d24f4b77681435faf684d587p2

    LUN的WWN在/dev/mapper中可能由3前缀。

    例如,从本程序前面的内容中,新LUN的WWN是60:01:40:57:d2:4f:4b:77:68:14:35:fa:f6:84:d5:87。 在此示例中,WWN显示为/dev/mapper/360014057d24f4b77681435faf684d587p1/dev/mapper/360014057d24f4b77681435faf684d587p2

    1. 创建以下临时目录:

      [root@solace-primary ~]# mkdir -p /tmp/old_lun_p1
      [root@solace-primary ~]# mkdir -p /tmp/old_lun_p2
      [root@solace-primary ~]# mkdir -p /tmp/new_lun_p1
      [root@solace-primary ~]# mkdir -p /tmp/new_lun_p2
    2. 挂载旧新LUN的分区一(p1)和分区二(p2)。

      [root@solace-primary ~]# mount /dev/mapper/<旧LUN wwn>p1 /tmp/old_lun_p1
      [root@solace-primary ~]# mount /dev/mapper/<旧LUN wwn>p2 /tmp/old_lun_p2
      [root@solace-primary ~]# mount /dev/mapper/<新LUN wwn>p1 /tmp/new_lun_p1
      [root@solace-primary ~]# mount /dev/mapper/<新LUN wwn>p2 /tmp/new_lun_p2

    例如:

    [root@solace-primary ~]# mount /dev/mapper/3600601604d301c008e291bb6a6d6e811p1 /tmp/old_lun_p1
    [root@solace-primary ~]# mount /dev/mapper/3600601604d301c008e291bb6a6d6e811p2 /tmp/old_lun_p2
    [root@solace-primary ~]# mount /dev/mapper/360014057d24f4b77681435faf684d587p1 /tmp/new_lun_p1
    [root@solace-primary ~]# mount /dev/mapper/360014057d24f4b77681435faf684d587p2 /tmp/new_lun_p2
    1. 将旧LUN的p1p2内的所有目录和文件复制到新LUN:

      [root@solace-primary ~]# cp -a /tmp/old_lun_p1/
  • /tmp/new_lun_p1/ [root@solace-primary ~]# cp -a /tmp/old_lun_p2/* /tmp/new_lun_p2/

    7. 卸载旧新LUN的`p1`和`p2`:

    [root@solace-primary ~]# umount /tmp/old_lun_p1 [root@solace-primary ~]# umount /tmp/old_lun_p2 [root@solace-primary ~]# umount /tmp/new_lun_p1 [root@solace-primary ~]# umount /tmp/new_lun_p2

    8. 返回到CLI:

    [root@solace-primary ~]# exit [support@solace-primary ~]$ exit
  1. 在主设备上然后备份设备上输入以下命令配置消息池使用新的外部磁盘LUN:

    solace-primary# configure
    solace-primary(configure)# hardware message-spool disk-array wwn <新LUN wwn>
    solace-backup# configure
    solace-backup(configure)# hardware message-spool disk-array wwn <新LUN wwn>

    其中<新LUN wwn>是新LUN的WWN,如本程序前面所示。

  2. 要启动保证消息传递和消息池,先在主设备上输入以下命令,然后在备份设备上输入:

    solace-primary(configure)# no hardware message-spool shutdown primary
    solace-backup(configure)# no hardware message-spool shutdown backup
  3. 要开始向应用程序提供服务,在主设备上然后备份设备上输入以下命令:

    solace-primary(configure)# no service msg-backbone shutdown
    solace-backup(configure)# no service msg-backbone shutdown
  4. 如果正在使用Config-Sync功能,在主设备和备份设备上输入以下命令确认Config-Sync操作正常:

    solace-primary> show config-sync
    管理状态: Enabled
    操作状态: Up
    solace-backup> show config-sync
    管理状态: Enabled
    操作状态: Up

    如果Config-Sync没有启动,要么是因为执行了超出本程序描述的配置更改,要么是因为一个或多个步骤没有按预期完成。为了防止配置进一步分歧,请立即调查并解决此问题。

  5. 可选:要编辑新LUN的最大池使用量,在主设备上然后备份设备上输入以下命令:

    solace-primary(configure)# hardware message-spool max-spool-usage <大小>
    solace-backup(configure)# hardware message-spool max-spool-usage <大小>

    其中<大小>是以兆字节为单位的最大池使用量。

    • 参见《配置最大池使用量》以设置最大池使用量。
    • 如果您在创建分区和文件系统时使用了默认值,LUN将被分成两个等大小的分区。每个分区应为最大池使用量的1.1倍。
  6. 此时,LUN迁移已成功。存储管理员取消配置原始LUN后,show hardware details命令显示旧LUN的状态为Down。 此外,设备的内核日志可能包含反映旧LUN不再可见的条目。

    示例日志条目:

    2016-03-01T02:43:04+0000 <daemon.notice> solace-primary multipathd: 3600601604d301c008e291bb6a6d6e811: sdd - emc_clariion_checker: 逻辑单元未绑定或LUNZ
    2016-03-01T02:43:04+0000 <daemon.notice> solace-primary multipathd: 3600601604d301c008e291bb6a6d6e811: sdf - emc_clariion_checker: 逻辑单元未绑定或LUNZ

    这些日志条目和附加设备的Down状态没有操作影响。

  7. 从主设备上移除原始LUN。

    1. 输入以下命令提升到支持用户,然后输入支持用户的密码。

      solace-primary# shell redundantLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

      [support@solace-primary ~]$ su -
      密码:
    3. 检查原始和新LUN是否都可见。

      [root@solace-primary ~]# multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='1 retain_attached_hw_handler' hwhandler='1

      . . .

      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw

      . . .
    4. 重新扫描SCSI总线以移除原始LUN。

      [root@solace-primary ~]# rescan-scsi-bus.sh -r
    5. 检查原始LUN是否已移除。

      [root@solace-primary ~]# multipath -ll
      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw
    6. 返回到CLI:

      [root@solace-primary ~]# exit
      [support@solace-primary ~]$ exit
  8. 从备份设备上移除原始LUN。

    1. 输入以下命令提升到支持用户,然后输入支持用户的密码。

      solace-backup# shell redundantLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

      [support@solace-backup ~]$ su -
      密码:
    3. 检查原始和新LUN是否都可见。

      [root@solace-backup ~]# multipath -ll
      3600601604d301c008e291bb6a6d6e811 dm-0 DGC ,RAID 0 size=300G features='1 retain_attached_hw_handler' hwhandler='1

      . . .

      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw

      . . .
    4. 重新扫描SCSI总线以移除原始LUN。

      [root@solace-backup ~]# rescan-scsi-bus.sh -r
    5. 检查原始LUN是否已移除。

      [root@solace-backup ~]# multipath -ll
      360014057d24f4b77681435faf684d587 dm-3 LIO-ORG ,sdc1-4 size=800G features='1 queue_if_no_path' hwhandler='0' wp=rw
    6. 返回到CLI:

      [root@solace-backup ~]# exit
      [support@solace-backup ~]$ exit