【问题标题】:Service Fabric cluster does not startService Fabric 群集未启动
【发布时间】:2020-01-11 01:42:46
【问题描述】:

1我们之前曾让 Service Fabric 正常工作,但是,现在我们无法启动集群并且立即收到错误消息。集群创建本身有错误。

当我检查 C:\SFDevCluster 中的 Service Fabric 日志 时,我看到了

Host Application: PowerShell.exe -WindowStyle Hidden -NonInteractive -ExecutionPolicy RemoteSigned -Command & 'C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1' -Auto -PathToClusterLogRoot C:\SFDevCluster\Log -SetupLogFileName DevClusterSetup.log -CreateOneNodeCluster
Transcript started, output file is C:\SFDevCluster\Log\DevClusterSetup.log
Performing Stop-Service on: FabricHostSvc . This may take a few minutes...
Create node configuration succeeded
Performing Start-Service on: FabricHostSvc . This may take a few minutes...

当我检查 Service Fabric traces 时,我看到 FabricDeployer-XXXXXX(longnumber).trace,其中包含以下内容

2019/09/09-09:06:06.239,Info,10844,FabricDeployer.FabricDeployer,Running deployer with Configure /fabricBinRoot:C:\Program Files\Microsoft Service Fabric\bin /fabricDataRoot:C:\SfDevCluster\Data /fabricLogRoot:C:\SFDevCluster\Log /cm:C:\Users\100659\AppData\Local\Temp\SEPC0T2R18-Server-ScaleMin.xml /oldClusterManifestString: /im: /instanceId: /targetVersion: /nodeName: /nodeTypeName: /runAsType: /runAsAccountName: /runAsPassword: /serviceStartupType:Manual /output: /currentVersion: /error: /bootstrapMSIPath: /machineName: /fabricPackageRoot: /jsonClusterConfigLocation: /enableCircularTraceSession:True /continueIfContainersFeatureNotInstalled: /skipDeleteData:
2019/09/09-09:06:06.241,Info,10844,ImageStoreClient.ManagedFileLock,Obtained writer lock for C:\SfDevCluster\Data\lock
2019/09/09-09:06:06.241,Info,10844,FabricDeployer.FabricDeployer,Executing Configure /fabricBinRoot:C:\Program Files\Microsoft Service Fabric\bin /fabricDataRoot:C:\SfDevCluster\Data /fabricLogRoot:C:\SFDevCluster\Log /cm:C:\Users\100659\AppData\Local\Temp\SEPC0T2R18-Server-ScaleMin.xml /oldClusterManifestString: /im: /instanceId: /targetVersion: /nodeName: /nodeTypeName: /runAsType: /runAsAccountName: /runAsPassword: /serviceStartupType:Manual /output: /currentVersion: /error: /bootstrapMSIPath: /machineName: /fabricPackageRoot: /jsonClusterConfigLocation: /enableCircularTraceSession:True /continueIfContainersFeatureNotInstalled: /skipDeleteData:
2019/09/09-09:06:06.249,Info,10844,FabricDeployer.FabricDeployer,Running operation System.Fabric.FabricDeployer.ConfigureOperation
2019/09/09-09:06:06.253,Info,10844,FabricDeployer.FabricDeployer,Creating FabricDataRoot C:\SfDevCluster\Data, if it doesn't exist on machine 
2019/09/09-09:06:06.254,Info,10844,FabricDeployer.FabricDeployer,Creating FabricLogRoot C:\SFDevCluster\Log, if it doesn't exist on machine 
2019/09/09-09:06:06.287,Info,10844,ImageBuilder.FabricDeployer,DnsService feature enabled : True.
2019/09/09-09:06:06.287,Info,10844,ImageBuilder.FabricDeployer,PartitionPrefix setting overriden in DnsService section, Overriden Value: --.
2019/09/09-09:06:06.287,Info,10844,ImageBuilder.FabricDeployer,PartitionSuffix setting overriden in DnsService section, Overriden Value: .
2019/09/09-09:06:06.287,Warning,10844,ImageBuilder.FabricDeployer,Current profile will be disabled by default for firewall rule
2019/09/09-09:06:06.297,Info,10844,FabricDeployer.FabricDeployer,Setting FabricDataRoot to C:\SfDevCluster\Data on machine 
2019/09/09-09:06:06.297,Info,10844,FabricDeployer.FabricDeployer,Setting FabricLogRoot to C:\SFDevCluster\Log on machine 
2019/09/09-09:06:06.297,Info,10844,FabricDeployer.FabricDeployer,Setting EnableCircularTraceSession to True on machine 
2019/09/09-09:06:06.297,Info,10844,FabricDeployer.FabricDeployer,Setting EnableUnsupportedPreviewFeatures to False on machine 
2019/09/09-09:06:06.297,Info,10844,FabricDeployer.FabricDeployer,Setting IsSFVolumeDiskServiceEnabled to False on machine 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter FabricDataRoot, has value C:\SfDevCluster\Data
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter FabricLogRoot, has value C:\SFDevCluster\Log
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ServiceRunAsAccountName, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ServiceRunAsPassword, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter SkipFirewallConfiguration, has value true
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ServiceStartupType, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ContainerNetworkName, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ContainerNetworkSetup, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter SkipContainerNetworkResetOnReboot, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter SkipIsolatedNetworkResetOnReboot, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter IsolatedNetworkName, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter IsolatedNetworkSetup, has value 
2019/09/09-09:06:06.298,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter IsolatedNetworkInterfaceName, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter EnableCircularTraceSession, has value true
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ContainerDnsSetup, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter: ContainerDnsSetup, value: <null>, interpreted value: Allow
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter EnableUnsupportedPreviewFeatures, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter IsSFVolumeDiskServiceEnabled, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter SfCnsNetworkPluginCnsUrlPort, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter SfCnsNetworkPluginCnmUrlPort, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter IsolatedNetworkPluginParams, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter UseContainerServiceArguments, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter ContainerServiceArguments, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter EnableContainerServiceDebugMode, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Setup section, parameter DisableContainers, has value 
2019/09/09-09:06:06.299,Info,10844,FabricDeployer.FabricDeployer,Copying ClusterManifest to C:\SfDevCluster\Data\clusterManifest.xml
2019/09/09-09:06:06.308,Info,10844,FabricDeployer.FabricDeployer,Set Service Fabric Host Service to start up type to Manual
2019/09/09-09:06:06.310,Info,10844,FabricDeployer.FabricDeployer,TargetInformationFileName is C:\SfDevCluster\Data\TargetInformation.xml
2019/09/09-09:06:06.317,Info,10844,FabricDeployer.FabricDeployer,Target information file C:\SfDevCluster\Data\TargetInformation.xml written on machine: 
2019/09/09-09:06:06.323,Info,10844,FabricDeployer.FabricDeployer,Host Settings file generated at C:\SfDevCluster\Data\FabricHostSettings.xml
2019/09/09-09:06:06.327,Info,10844,ImageStoreClient.ManagedFileLock,Released writer lock on C:\SfDevCluster\Data\lock

上一条有趣的一行是:

2019/09/09-09:06:06.287,Warning,10844,ImageBuilder.FabricDeployer,Current profile will be disabled by default for firewall rule

这让我觉得可能有一些防火墙规则阻止了我,但我无法确定到底发生了什么。

我在 Windows 事件查看器中查看了以下来自不同领域的 Service Fabric 相关事件:

当我查看(应用程序和服务日志 ==> Microsoft-Service Fabric ==> Admin)时,我看到以下内容:

错误 FileChangeMonitor 失败并显示 E_ACCESSDENIED

警告 FileChangeMonitor 失败文件 C:\SfDevCluster \Data\FabricHostSettings.xml,错误代码为 E_ACCESSDENIED。

错误 GetFileAttributesEx 失败,出现以下错误 5

错误无法停止 FabricHostSvc 服务,因为 System.InvalidOperationException:无法停止计算机“.”上的 FabricHostSvc 服务。 ---> System.ComponentModel.Win32Exception: 服务尚未启动 --- 内部异常堆栈跟踪结束 --- 在 System.ServiceProcess.ServiceController.Stop() 在 System.Fabric.FabricDeployer.FabricDeployerServiceController.Stop(String serviceName, String machineName)

错误无法启动结构主机服务,因为 System.InvalidOperationException:无法在计算机“.”上启动服务 FabricHostSvc。 ---> System.ComponentModel.Win32Exception: 服务没有及时响应启动或控制请求 --- 内部异常堆栈跟踪结束 --- 在 System.ServiceProcess.ServiceController.Start(字符串 [] 参数) 在 System.Fabric.FabricDeployer.FabricDeployerServiceController.StartHostSvc(String machineName)

错误 清理隔离网络设置异常 System.ArgumentNullException 时出错:值不能为空。 参数名称:格式 在 System.String.FormatHelper(IFormatProvider 提供程序,字符串格式,ParamsArray args) 在 System.Fabric.FabricDeployer.RemoveOperation.RemoveNetworks(DeploymentParameters 参数)

警告 ParseConfigSettings:ErrorCode=E_FAIL,FileName=C:\SfDevCluster\Data\FabricHostSettings.xml

警告 CreateFileW 失败:file=\?\C:\SfDevCluster\Data\FabricHostSettings.xml 错误=32

我们已经尝试了以下所有解决方案,但都没有奏效:

  • 确保 Window 防火墙服务已启动并运行
  • 从提升的 powershell 会话运行:Unregister-ScheduledTask FabricCounters(有趣的是,我们甚至没有计数器!)
  • 添加了 { "name": "FabricContainerAppsEnabled", "value": "false"} 到 集群配置
  • 授予网络服务访问权限 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
  • 移除集群并删除 C:\SfDevCluster 并尝试部署 再次(仍然有错误)
  • 将 IP 地址从 MACHINENAME 更改为 127.0.0.1 并确保 IPorFQDN 和我的机器名一样

以上尝试大部分来自 Github 中的这个 issue:https://github.com/Azure/service-fabric-issues/issues/1056

【问题讨论】:

    标签: azure azure-service-fabric


    【解决方案1】:

    如果您的端口被阻止,就会发生这种情况。我建议您查看可用的端口并使用它们。您是否更改了默认端口?

    【讨论】:

    • 我没有对默认端口进行任何更改,但可能是我的 IT 部门,因为它是一个公司环境。你知道服务结构需要哪些端口吗?
    • 当您创建服务结构项目时,程序默认选择一个空闲端口(例如 32463),但您可以自定义它。当然,您希望您的应用程序在 80/443 上运行。我的组织阻止了 80 端口,因此有机会遇到同样的问题。
    • 不幸的是,这没有帮助:(
    【解决方案2】:

    我让它工作了 我在目录中打开命令行:%programfiles%\Microsoft Service Fabric\bin 我尝试运行 Service Fabric 可执行文件 FabricHost.exe -c 当我尝试运行 Service Fabric 可执行文件时,由于操作系统中的 DLL 损坏(很可能是由于我公司的组策略更新)而失败,我得到了损坏的 DLL,我还使用了 TestConfiguration 脚本,它现在可以工作了。

    要了解有关测试配置脚本的更多信息,请转到https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-standalone-deployment-preparation 中的(使用 TestConfiguration 脚本验证环境)。

    我得到提示的问题的另一个参考:https://github.com/microsoft/service-fabric/issues/382

    【讨论】:

      猜你喜欢
      • 2016-07-13
      • 2018-12-31
      • 2017-07-04
      • 2016-03-25
      • 2017-08-09
      • 2018-10-27
      • 2016-09-28
      • 2017-07-19
      • 2018-11-17
      相关资源
      最近更新 更多