跳到主要内容

为独立设备替换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. 确保设备处于正确的状态。

运行show message-spool detail命令并验证以下内容:

  • 配置状态为Enabled (Primary)
  • 操作状态为AD-Active

例如:

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

. . .

操作状态: AD-Active

  1. 确定旧LUN的WWN(全球唯一名称)。

输入以下命令。

solace> 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# shell standaloneLunMigration
      登录:支持
      密码:
    2. 输入以下命令提升到root用户或sysadmin用户,然后输入该用户的密码。

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

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

      . . .

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

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

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

      [root@solace ~]# 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 ~]#

    本程序的示例使用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 ~]# exit
      [support@solace ~]$ exit
  2. 对新LUN进行分区并创建文件系统。更多信息,请参见《为保证消息配置外部磁盘阵列》。

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

    solace> show hardware details

    img示例:

    solace> show hardware details

    . . .

    槽 1/4:主机总线适配器刀片
    产品编号: HBA-0204FC-02-A
    序列号: RFC0609G02361
    型号名称: QLE2462
    型号描述: PCI-Express双通道4Gb光纤通道HBA
    驱动版本: 8.04.00.03-k

    . . .

    附加设备
    LUN 0
    状态: 就绪
    大小: 300G
    WWN : 60:06:01:60:4d:30:1c:00:8e:29:1b:b6:a6:d6:e8:11
    LUN 1
    状态: 就绪
    大小: 800G
    WWN : 60:01:40:57:d2:4f:4b:77:68:14:35:fa:f6:84:d5:87

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

  4. 如果正在使用Config-Sync功能,输入以下命令确认Config-Sync操作正常:

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

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

  5. 要停止向应用程序提供服务,输入以下命令:

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

    • 设备仍然活跃,正常,并且已同步(由操作、数据路径和同步状态指示)
    • 设备已成功清理所有流(由当前使用列中的零指示)

示例show message-spool details输出:

solace(configure/service/msg-backbone)# show message-spool detail

配置状态: Enabled (Primary)

. . .

操作状态: AD-Active
数据路径状态: Up
同步状态: Synced

. . .
当前使用 最大允许
-------------- -----------
. . .

总入口流: 0 1000000
总出口流: 0 100000
活动出口流: 0
非活动出口流: 0
浏览器出口流: 0

. . .
  1. 确保消息池碎片整理不活跃。

    输入以下命令。

    solace> show message-spool

    . . .

    碎片整理状态: Idle

    . . .

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

  2. 要停止保证消息传递,输入以下命令:

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

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

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

      [support@solace ~]$ su -
      密码:
    3. 使用adkey-tool脚本将旧LUN的AD密钥迁移到新LUN,迁移分区(p)内的AD密钥。

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

    例如:

    [root@solace ~]# adkey-tool migrate --src-device /dev/mapper/3600601604d301c008e291bb6a6d6e811p --dest-device /dev/mapper/360014057d24f4b77681435faf684d587p

    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/360014057d24f4b77681435faf684d587p

    1. 创建以下临时目录:

      [root@solace ~]# mkdir -p /tmp/old_lun_p
      [root@solace ~]# mkdir -p /tmp/new_lun_p
    2. 挂载旧新LUN的分区(p)。

      [root@solace ~]# mount /dev/mapper/<旧LUN wwn>p /tmp/old_lun_p
      [root@solace ~]# mount /dev/mapper/<新LUN wwn>p /tmp/new_lun_p

    例如:

    [root@solace ~]# mount /dev/mapper/3600601604d301c008e291bb6a6d6e811p /tmp/old_lun_p
    [root@solace ~]# mount /dev/mapper/360014057d24f4b77681435faf684d587p /tmp/new_lun_p
    1. 将旧LUN的p内的所有目录和文件复制到新LUN:

      [root@solace ~]# cp -a /tmp/old_lun_p/* /tmp/new_lun_p/
    2. 卸载旧新LUN的p

      [root@solace ~]# umount /tmp/old_lun_p
      [root@solace ~]# umount /tmp/new_lun_p
    3. 返回到CLI:

      [root@solace ~]# exit
      [support@solace ~]$ exit
  4. 输入以下命令配置消息池使用新的外部磁盘LUN:

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

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

    示例:配置消息池

    solace# configure
    solace(configure)# hardware message-spool disk-array wwn 60:01:40:57:d2:4f:4b:77:68:14:35:fa:f6:84:d5:87
    警告:为了避免丢失消息,重要的是要按照正确的磁盘迁移程序进行。详细信息请参考功能配置指南。
    您想继续吗 (y/n)? y
  5. 要启动保证消息传递和消息池,输入以下命令:

    solace(configure)# no hardware message-spool shutdown primary
  6. 要开始向应用程序提供服务,输入以下命令:

    solace(configure)# no service msg-backbone shutdown
  7. 如果正在使用Config-Sync功能,输入以下命令确认Config-Sync操作正常:

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

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

  8. 可选:要编辑新LUN的最大池使用量,输入以下命令:

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

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

    • 参见《配置最大池使用量》以设置最大池使用量。
    • 如果您在创建分区和文件系统时使用了默认值,LUN将被分成两个分区。第二个分区仍然需要,但可以小至100MB。如果您计划稍后添加第二个设备以创建冗余对,请考虑为独立设备设置分区大小,就好像它已经在冗余对中一样(最大池使用量的1.1倍)。
  9. 此时,LUN迁移已成功。存储管理员取消配置原始LUN后,show hardware details命令显示旧LUN的状态为Down

    示例show hardware details输出:

    solace> show hardware details

    . . .

    槽 1/4:主机总线适配器刀片
    产品编号: HBA-0204FC-02-A
    序列号: RC0609G02361
    型号名称: QLE2462
    型号描述: PCI-Express双通道4Gb光纤通道HBA
    驱动版本: 8.04.00.03-k

    . . .

    附加设备
    LUN 0
    状态: Down
    大小: 300G
    WWN : 60:06:01:60:4d:30:1c:00:8e:29:1b:b6:a6:d6:e8:11
    LUN 1
    状态: 就绪
    大小: 800G
    WWN : 60:01:40:57:d2:4f:4b:77:68:14:35:fa:f6:84:d5:87

    此外,设备的内核日志可能包含反映旧LUN不再可见的条目。

    示例日志条目:

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

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

  10. 从设备中移除原始LUN。

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

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

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

      [root@solace ~]# 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

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

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

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

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