vMotion に失敗する
VCSA 6.0(vCenter Server Appliance)からゲストOSを移動させようとすると、エラーが出力され起動できませんでした。
A general system error occurred: PBM error occurred during PreMigrateCheckCallback: No connection could be made because the target machine actively refused it.
この問題は、Profile-Driven Storage サービスが稼働していない場合に発生するようなので、簡単に復旧出来ると思っていたら大間違いでした。
vCenterにログインしてサービスを起動させる
vCenter で[BASH Shell]と[SSH]を有効化
ダイレクトコンソール ユーザーインターフェース(DCUI) の画面で [F2] を押して、システムのカスタマイズ メニューにアクセスしユーザー名とパスワードを入力します。

[Troubleshooting Mode Options] を選択します。

[BASH Shell]と[SSH]を有効化します。[Enter]キーで有効/無効が切替ります。

コマンドを実行するが失敗する
SSHにてリモート接続し、コマンドを実行するもエラーが出力されサービスを起動することが出来ず。
# shell # # service-control --start vmware-sps INFO:root:Service: vmware-sps, Action: start Service: vmware-sps, Action: start 2017-12-21T01:26:11.565Z Running command: ['/sbin/chkconfig', u'vmware-sps'] 2017-12-21T01:26:11.633Z Done running command 2017-12-21T01:26:11.634Z Running command: ['/sbin/service', u'vmware-sps', 'status'] 2017-12-21T01:26:11.762Z Done running command 2017-12-21T01:26:11.762Z Running command: ['/sbin/chkconfig', '--force', u'vmware-sps', 'on'] 2017-12-21T01:26:11.809Z Done running command 2017-12-21T01:26:11.809Z Running command: ['/sbin/service', u'vmware-sps', 'start'] 2017-12-21T01:26:15.522Z Done running command 2017-12-21T01:26:15.522Z Invoked command: ['/sbin/service', u'vmware-sps', 'start'] 2017-12-21T01:26:15.523Z RC = 1 Stdout = Starting VMware vSphere Profile-Driven Storage Service... Waiting for VMware vSphere Profile-Driven Storage Service...... WARNING: VMware vSphere Profile-Driven Storage Service may have failed to start. Stderr = 2017-12-21T01:26:15.523Z { "resolution": null, "detail": [ { "args": [ "Command: ['/sbin/service', u'vmware-sps', 'start']\nStderr: " ], "id": "install.ciscommon.command.errinvoke", "localized": "An error occurred while invoking external command : 'Command: ['/sbin/service', u'vmware-sps', 'start']\nStderr: '", "translatable": "An error occurred while invoking external command : '%(0)s'" } ], "componentKey": null, "problemId": null } ERROR:root:Unable to start service vmware-sps, Exception: { "resolution": null, "detail": [ { "args": [ "vmware-sps" ], "id": "install.ciscommon.service.failstart", "localized": "An error occurred while starting service 'vmware-sps'", "translatable": "An error occurred while starting service '%(0)s'" } ], "componentKey": null, "problemId": null } Unable to start service vmware-sps, Exception: { "resolution": null, "detail": [ { "args": [ "vmware-sps" ], "id": "install.ciscommon.service.failstart", "localized": "An error occurred while starting service 'vmware-sps'", "translatable": "An error occurred while starting service '%(0)s'" } ], "componentKey": null, "problemId": null }
原因の調査
調査したところ、/usr/lib/vmware-vpx/sps/conf/pbm.properties の情報が正しくないため、VMware vSphere Profile-Driven Storage Service の起動に失敗していました。
本来、/usr/lib/vmware-vpx/sps/conf/pbm.properties は、数十行のエントリで構成されているものが、何故かホスト名が記載された1行のみになっていました。
設定ファイルを修復する
/usr/lib/vmware-vpx/sps/conf/pbm.properties を再作成することにしました。
pbm_server_guid の値を確認します。
1. /storage/invsvc/xdb/xdb.bootstrap を開き、 "PBMCapabilityMetadataProvider:com.vmware.storageprofile.std.1.0:com.vmware.storageprofile.std:" が記載されている行を確認します。 例) <segment id="31478cdd-dca9-4c87-b799-b25e63657dff" temp="false" version="1" state="read_write" usage="detachable_root" usable="true" library-path="/PBM/urn:vmomi:PBMCapabilityMetadataProvider:com.vmware.storageprofile.std.1.0:com.vmware.stora geprofile.std:5f154091-69f7-427b-beee-fd41c06c486" library-id="17"> 2. 上記文字列が記載されている行の GUID を記録します。 上記例の場合、GUID は "5f154091-69f7-427b-beee-fd41c06c486" です。
ファイルのバックアップを取得します
/usr/lib/vmware-vpx/sps/conf/pbm.properties ファイルのバックアップを取得します
# cd /usr/lib/vmware-vpx/sps/conf/ # cp -p ./pbm.properties ./pbm.properties_bkup
ファイルを書き換えます
/usr/lib/vmware-vpx/sps/conf/pbm.properties ファイルを書き換えます。
例) # cd /usr/lib/vmware-vpx/sps/conf/ # vi ./pbm.properties
※[pbm_server_guid] の項目には確認した GUID を入力します。
※pbm.http.port や pbm.https.port を変更している場合、適切な値に変更します。
・pbm.http.port の値は /etc/vmware/install-defaults/sps.int.pbmhttp
・pbm.https.port の値は /etc/vmware/install-defaults/sps.int.pbmhttps
pbm.http.port = 8190 pbm.https.port = 8191 pbm.serverGuid = [pbm_server_guid] pbm.ServerUrl = localhost # number of retries when connecting to vpxd and inventory services (Set -1 for infinite attempts) pbm.connectionRetryAttemps = -1 # retry intervals when connecting to vpxd and inventory services(ms) pbm.connectionRetryInterval = 10000 # default time (in seconds) between IS feed polling attempts pbm.defaultPollingPeriod = 20 # Wait time(ms) before updating rollup on associate pbm.updateRollupOnAssociateInterval = 0 # Batch size for checkCompliance invocation. pbm.complianceCheckBatchSize = 50 # Batch size for fetchCompliance invocation pbm.fetchComplianceCheckBatchSize = 100 # Sleep interval (secs) before checking compliance for next batch pbm.complianceCheckBatchSleepInterval = 1 # Initial delay (secs) before compliance checker background thread starts pbm.complianceCheckerInitialDelay = 3600 # Polling interval (secs) for compliance checker background thread. # Currently set to every 8 hour. pbm.complianceCheckerPollingPeriod = 28800 # Batch size for dissociate operation triggered when VM/VMDK deletion is detected in VC pbm.dissociateBatchSize = 50 # Batch size for changeAssociations. pbm.changeAssociationsBatchSize = 5000 # Batch size for querying virtual disks. pbm.queryCurrentVDisksBatchSize = 100 # Batch size for stale association cleanup background thread pbm.staleAssociationCleanupBatchSize = 50 # Max delay in secs between retries for scheduling PBM QS publisher thread pbm.pbmQsPublisherMaxDelayBetweenRetryInSecs = 32 # The maximum capacity of the publisher queue. pbm.publisherQueueCapacity = 1000 # The number of stripes to be used for rollup compliance locks. pbm.rollupComplianceNumOfStripedLocks = 1024 # pbm keystore properties cm.url = http:\/\/localhost:18090\/cm\/sdk\/?hostid=28878228-8993-4d60-92e5-2cf45266dd9b pbm.KeyStorePath = \/etc\/vmware-sps\/ssl\/sms.keystore pbm.TrustStorePath = \/etc\/vmware-sps\/ssl\/sms.truststore pbm.KeyAlias = vpxd-extension pbm.KeyStoreName = vpxd-extension pbm.TrustStoreName = TRUSTED_ROOTS pbm.KeyStorePassword = None # pbm extension key and url entry pbm.extensionKey = com.vmware.vim.sps pbm.proxy.entry = \/pbm # Update interval for privileges and roles in Pbm Authentication Validator in seconds. pbm.auth.updateInterval = 300 # maximum number of attempts VCNotificationService connects to VC. Set to a value >= 1. pbm.VCNotificationService.maxAttempts = 3 # time in seconds between successive attempts when VCNotificationService connects to VC pbm.VCNotificationService.sleepIntervalSecs = 3 # # Log4j configuration # log4j.rootCategory = DEBUG,console,file log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Threshold = INFO log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = %d %C [%t] %p %c - %m%n log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = pbm.log log4j.appender.file.Append = true log4j.appender.file.Threshold = TRACE log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern = %d %C [%t] %p %c - %m%n log4j.appender.file.MaxFileSize = 10MB log4j.appender.file.MaxBackupIndex = 10 # feature specific kill switches pbm.isIOFilterEnabled = true
サービスの起動
Profile driven storage サービスの起動を実施します
# service-control --start vmware-sps
無事にサービスが起動し vMotion が実行出来るようになりました。
コメント