4

Docker ストレージ (dm.thinpooldev) に LVM シンプールを使用していますが、これまでにメタ データ プールのスペースが不足したことが何度かありました。大きなメタデータを使用してシンプールを再作成するだけで済むので、戦うのは簡単ですが、それをどれだけ大きくするかを推測しているだけです (おそらく推測しすぎです)。

Docker のメタデータの相対的なサイズについて何か提案はありますか? lvcreate のデフォルトでは不十分なようです:

--poolmetadatasize MetadataVolumeSize[bBsSkKmMgG] プールのメタデータ論理ボリュームのサイズを設定します。サポートされている値は、シン プールの場合は 2MiB から 16GiB、キャッシュ プールの場合は最大 16GiB の範囲です。最小値は、プールのデータ サイズから計算されます。シン プールのデフォルト値は (Pool_LV_size / Pool_LV_chunk_size * 64b) です。デフォルトの単位はメガバイトです。

私が使用している基本的なコマンドは次のとおりです。

DISK=/dev/xvdf
VG=docker_vg
LV=docker_pool
pvcreate $DISK
vgcreate $VG $DISK
lvcreate -l 100%FREE --thinpool $LV $VG

または、任意のメタ データ サイズに置き換えます

lvcreate -l 100%FREE --poolmetadatasize 200M --thinpool $LV $VG

[編集] うーん、応答がないので、今のところ 1% とします。これは今のところ機能していますが、おそらくまだ過剰にプロビジョニングされています.

  DISK=/dev/xvdf
  VG=docker_vg
  LV=docker_pool
  DOCKER_POOL_METADATA_PERCENTAGE=1

  DISK_SIZE=$(blockdev --getsize64 ${DISK})
  META_DATA_SIZE=$(echo "scale=0;${DISK_SIZE}*${DOCKER_POOL_METADATA_PERCENTAGE}/100" | bc)
  pvcreate ${DISK}
  vgcreate ${DOCKER_VG} ${DISK}
  # This metadata sizing is in k because bytes doesn't seem to translate properly
  lvcreate -l 100%FREE --poolmetadatasize $((${META_DATA_SIZE}/1024))k --thinpool ${DOCKER_POOL} ${DOCKER_VG}
4

0 に答える 0