免責事項: これは英文の記事「Storage policies added to PVDC are displayed as "N/A"」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事を参照してください。
多数のデータストアが関連付けられている VCD では、PVDC に新しいストレージ ポリシーを追加した後、項目が N/A として表示される場合があります。
以下のように /opt/vmware/vcloud-director/logs/vcloud-container-info.log に、SQL UPDATE がタイムアウトしてエラーが発生した以下のログが出力されます。
2024-08-26 13:33:55,002 | ERROR | Backend-activity-pool-733193 | JDBCExceptionReporter | ERROR: canceling statement due to statement timeout Where: SQL statement "UPDATE cached_dgp_sc_metric AS cachedSETrequested_storage_mb = source.requested_storage_mb ,pvdc_count = source.pvdc_count ,disk_free_mb = source.disk_free_mb ,disk_size_mb = source.disk_size_mb ,disk_uncommitted_mb = source.disk_uncommitted_mb ,disk_used_mb = source.disk_used_mb ,disk_provisioned_mb = source.disk_provisioned_mb ,iops_capacity = source.iops_capacity ,iops_allocated = source.iops_allocatedFROMdgp_sc_metrics_view AS sourceWHERE((cached.ds_vc_id = source.ds_vc_id) AND (cached.ds_moref = source.ds_moref))AND (cached.requested_storage_mb != source.requested_storage_mb ORcached.pvdc_count != source.pvdc_count ORcached.disk_free_mb != source.disk_free_mb ORcached.disk_size_mb != source.disk_size_mb ORcached.disk_uncommitted_mb != source.disk_uncommitted_mb ORcached.disk_used_mb != source.disk_used_mb ORcached.disk_provisioned_mb != source.disk_provisioned_mb ORcached.iops_capacity != source.iops_capacity ORcached.iops_allocated != source.iops_allocated)"PL/pgSQL function populate_cached_sc_metrics(integer) line 35 at SQL statement | 2024-08-26 13:33:55,004 | WARN | Backend-activity-pool-733193 | aseCacheRefreshJob$DatabaseCacheRefreshJobActivity | [Activity Execution] Failed to execute stored procedure: populate_cached_sc_metrics - Handle: urn:uuid:########-####-####-####-############ | org.hibernate.HibernateException: org.hibernate.exception.GenericJDBCException: error executing work at com.vmware.vcloud.common.persist.Conversation.monitor(Conversation.java:584) at com.vmware.vcloud.common.persist.Conversation.execStoredProcedure(Conversation.java:925) at com.vmware.vcloud.common.persist.Conversation.execNonQueryStoredProcedure(Conversation.java:870) at com.vmware.vcloud.common.persist.Conversation.execNonQueryStoredProcedure(Conversation.java:861) at com.vmware.ssdc.backend.monitoring.DatabaseCacheRefreshJob$DatabaseCacheRefreshJobActivity$DatabaseCacheCleanerPhase$1.run(DatabaseCacheRefreshJob.java:110) at com.vmware.ssdc.backend.monitoring.DatabaseCacheRefreshJob$DatabaseCacheRefreshJobActivity$DatabaseCacheCleanerPhase$1.run(DatabaseCacheRefreshJob.java:106) at com.vmware.vcloud.common.threadpool.ThreadContextExecutor.executeImpl(ThreadContextExecutor.java:59) at com.vmware.vcloud.common.threadpool.ThreadContextExecutor.execute(ThreadContextExecutor.java:52) at com.vmware.ssdc.backend.monitoring.DatabaseCacheRefreshJob$DatabaseCacheRefreshJobActivity$DatabaseCacheCleanerPhase.invoke(DatabaseCacheRefreshJob.java:117) at com.vmware.vcloud.activity.executors.ActivityRunner.runPhase(ActivityRunner.java:175) at com.vmware.vcloud.activity.executors.ActivityRunner.run(ActivityRunner.java:112) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829)Caused by: org.hibernate.exception.GenericJDBCException: error executing work at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) at org.hibernate.impl.SessionImpl.doWork(SessionImpl.java:1877) at jdk.internal.reflect.GeneratedMethodAccessor2887.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.vmware.vcloud.common.db.HibernateClassLoaderHelperBeanPostProcessor$SessionInvocationHandler.invoke(HibernateClassLoaderHelperBeanPostProcessor.java:280) at com.sun.proxy.$Proxy113.doWork(Unknown Source) at com.vmware.vcloud.common.persist.Conversation.lambda$execStoredProcedure$7(Conversation.java:926) at com.vmware.vcloud.common.persist.Conversation.monitor(Conversation.java:576) ... 15 moreCaused by: org.postgresql.util.PSQLException: ERROR: canceling statement due to statement timeout Where: SQL statement "UPDATE cached_dgp_sc_metric AS cachedSETrequested_storage_mb = source.requested_storage_mb ,pvdc_count = source.pvdc_count ,disk_free_mb = source.disk_free_mb ,disk_size_mb = source.disk_size_mb ,disk_uncommitted_mb = source.disk_uncommitted_mb ,disk_used_mb = source.disk_used_mb ,disk_provisioned_mb = source.disk_provisioned_mb ,iops_capacity = source.iops_capacity ,iops_allocated = source.iops_allocatedFROMdgp_sc_metrics_view AS sourceWHERE((cached.ds_vc_id = source.ds_vc_id) AND (cached.ds_moref = source.ds_moref))AND (cached.requested_storage_mb != source.requested_storage_mb ORcached.pvdc_count != source.pvdc_count ORcached.disk_free_mb != source.disk_free_mb ORcached.disk_size_mb != source.disk_size_mb ORcached.disk_uncommitted_mb != source.disk_uncommitted_mb ORcached.disk_used_mb != source.disk_used_mb ORcached.disk_provisioned_mb != source.disk_provisioned_mb ORcached.iops_capacity != source.iops_capacity ORcached.iops_allocated != source.iops_allocated)"PL/pgSQL function populate_cached_sc_metrics(integer) line 35 at SQL statement at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308) at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:150) at org.postgresql.jdbc.PgCallableStatement.executeWithFlags(PgCallableStatement.java:77) at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:139) at com.vmware.vcloud.common.persist.AbstractCallableStatementWork.execute(AbstractCallableStatementWork.java:87) at org.hibernate.impl.SessionImpl.doWork(SessionImpl.java:1873) ... 22 more
この問題は、datastore_inv テーブルに 500 件を超えるエントリがある場合にのみ発生します。
VMware Cloud Director のインベントリテーブルには複合インデックスがあります。
任意のビューと複合条件を使用して SELECT または UPDATE 文を実行すると、PostgreSQL は複合インデックスを使用しないことを選択し、タイムアウトが発生する可能性があります。
回避策:
この問題を回避するには、Broadcom VMware Cloud Foundation サポートチームに新しいケースを開いてください。詳細については、「サポートリクエストの送信方法」を参照してください。