跳到主要内容

主从运维

双服务器部署方式,使用2台服务器,一台作为“主服务器”,另一台作为“从服务器”,两台服务器同时运行,并保持数据热同步,当其中一台服务器故障时,另一台服务器能迅速接管业务,待故障排除后,也可以重新恢复主从系统。

主服务器故障

当主服务器发生故障且无法快速恢复时,可以启用从服务器临时接管系统访问,待主服务器故障排除后,再重建主从系统。

网盘服务IP是指网盘服务对外提供访问的IP地址,一般是指主服务器IP地址,也可能是使用其他IP映射到主服务器IP。

接管系统访问

当主服务器发生故障且无法快速恢复时,可以使用从服务器快速接管系统访问,请按以下步骤执行:

  1. 停用网盘服务IP

    如果主服务器的操作系统还能启动,则进入操作系统后将网盘服务IP更换为其他任意可用IP(WindowUbuntuCentOS),以便网盘服务IP可以设置到从服务器上,避免IP冲突。

  2. 使用从服务器接管系统访问

    进入从服务器,以管理员身份运行cmd,执行命令:

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToSingle.ps1"
  3. 启用网盘服务IP地址 在从服务器中,将网盘服务IP配置为本机静态IP地址(WindowUbuntuCentOS)。

重建主从系统

当从服务器发生故障时,我们启用从服务器临时接管了系统访问,但当原从服务器故障排除后,需要重建主从系统。

由于从服务器接管系统访问的这段时间,很可能有新上传的文件数据,如果直接按原主从系统恢复,会导致这部分新数据丢失。通过直接将现在接管系统访问的从服务器提升为主服务器,将原主服务器降为从服务器,这样同步数据自动完成,新的主从系统也同时重建就绪。

如果一定要恢复原有的服务器主从角色,重建主从系统后,待数据同步完成后,再恢复原主从系统

执行本流程期间会关闭服务器,正常耗时约10分钟,请按照以下步骤实现:

  1. 创建验证文件

    提示

    确认新的主服务器是一个关乎数据安全的重要过程,由于数据从主服务器向从服务器同步,如果主从服务器颠倒可能会导致数据覆盖丢失,造成严重后果。

    使用您的账号登录网盘系统,在我的文件中的任意目录下新建一个名称为testydisk.txt的空文件。

  2. 启用新的主服务器

    启用新的主服务器就是当前正在提供网盘系统访问的服务器

    进入提供网盘系统访问的服务器,以管理员身份运行cmd,执行命令,检查网盘服务IP是否在命令输出列表中(如果是IP映射访问,请确认映射的内网IP是否为当前服务器IP):

    ipconfig|find "IP"

    确认后,执行命令:

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToMS.ps1" -Deployment master

    请记录当前的版本号,以便后续步骤验证,执行命令:

    type "%YDISK_SERVER_HOME%\etc\config.json"|find "version"
  3. 验证主服务器

    使用刚启用的主服务器的内网IP(如:http://192.168.0.100:2020 ), 登录网盘Web页面,检查步骤1创建的验证文件testydisk.txt是否存在,如果不存在,说明服务器数据异常,应立即停止操作,联系技术支持人员。如果存在可以继续下一步骤。

  4. 复制认证URL

    刷新浏览器页面,由于当前主服务器没有从服务器与之连接,因此页面顶端会提示错误:

    image-20260316112540569

    点击查看详情,弹出的页面中点击加入从服务器,弹出页面:

    image-20260316131202708

    如果从服务器是新主机,则参考这个页面中安装从服务器,并跳过下面的步骤5。

    如果即将启用的从服务器,就是之前出故障的原主服务器。选择正确的新主服务器IP,点击页面中的使用认证URL,复制并记录认证URL,以备下一步骤使用。

  5. 启用从服务器

    进入即将启用的从服务器主机,以管理员身份运行cmd,执行命令:

    提示

    请注意,需要将命令行中的认证URL替换为 上一步骤 中记录的认证URL

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToSingle.ps1"
    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToMS.ps1" -Deployment slave -AuthUrl "认证URL"

    检查其版本号是否和刚启用的新主服务器一致:

    type "%YDISK_SERVER_HOME%\etc\config.json"|find "version"

    如果版本号低于主服务器,需要升级从服务器

  6. 验证主从系统状态

    使用主服务器的内网IP(如:http://192.168.0.100:2020 ),以拥有系统管理员角色的账号登录网盘Web页面,在运维管理 -> 系统维护 ->服务器状态 页面中查看主从系统状态。

恢复原主从系统

重建主从系统后,如果一定要恢复原有的服务器主从角色,需待数据库同步完成后,执行服务器角色互换切换回原有的服务器角色。

执行本流程期间需关闭服务器,正常耗时约10分钟,请按照以下步骤实现:

  1. 检查主从系统数据库一致性

    以拥有系统管理员角色的账号登录网盘Web页面,在运维管理 -> 系统维护 ->服务器状态 -> 从服务器 页面中的底部找到数据同步状态, 在其中有数据库和分布式存储的状态显示,数据库必须为已完成状态才能进行下一步骤的操作,分布式存储的状态不必关心。

  2. 关闭主服务器

    进入主服务器,以管理员身份运行cmd,执行命令:

    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --stop

    然后,将主服务器IP配置为新的从服务器IP(WindowUbuntuCentOS)。

  3. 关闭从服务器

    进入从服务器,以管理员身份运行cmd,执行命令:

    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --stop

    然后,将从服务器IP配置为新的主服务器IP(WindowUbuntuCentOS)。

  4. 启用新主服务器

    进入从服务器,以管理员身份运行cmd,执行命令:

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToSingle.ps1"
    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToMS.ps1" -Deployment master

    这时,新的主服务器开始运行。

  5. 启用新从服务器

    进入原主服务器,以管理员身份运行cmd,执行命令:

    提示

    请注意,需要将命令行中的认证URL替换为 上一步骤 中记录的认证URL

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToSingle.ps1"
    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToMS.ps1" -Deployment slave -AuthUrl "认证URL"
  6. 验证主从系统状态

    使用主服务器的内网IP(如:http://192.168.0.100:2020 ),以拥有系统管理员角色的账号登录网盘Web页面,在运维管理 -> 系统维护 ->服务器状态 页面中查看主从系统状态。

从服务器故障

当从服务器发生故障且无法快速恢复时,可以启用主服务器临时接管系统访问,待从服务器故障排除后,再恢复主从系统。

接管系统访问

当从服务器发生故障且无法快速恢复时,可以使用主服务器快速接管系统访问,请按以下步骤执行:

  1. 关闭从服务器

    为了防止从服务器的某些组件正在运行而影响主服务器,需要先彻底关闭从服务器。

    进入从服务器,以管理员身份运行cmd,执行命令:

    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --start-demand
    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --stop
  2. 使用主服务器接管系统访问

    进入主服务器,以管理员身份运行cmd,执行命令:

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToSingle.ps1"

恢复主从系统

  1. 启用主服务器

    进入主服务器,以管理员身份运行cmd,执行命令:

    powershell -NoLogo -ExecutionPolicy Bypass -File "%YDISK_SERVER_HOME%\bin\ops\convertToMS.ps1" -Deployment master
  2. 启用从服务器

    如果从服务器是新主机,则参考这个页面中安装从服务器,并跳过下面的步骤。

    如果从服务器还是之前的主机,且程序和数据都还在,则进入从服务器,以管理员身份运行cmd,执行命令:

    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --start-auto
    "%YDISK_SERVER_HOME%/bin/ops/serviceManager.bat" --start