web-dev-qa-db-ja.com

LVMパーティションのキャッシュを停止する方法は?

https://rwmj.wordpress.com/2014/05/22/using-lvms-new-cache-feature/ で説明されているように、現在、UbuntuインストールでLVMキャッシュをセットアップしています。 (私はそれを機能させるためにいくつかの鮮やかな/提案されたパッケージをインストールする必要がありましたが、私は管理しました。)

次の方法で、論理ボリュームの1つをキャッシュボリュームに正常に変換できました。

# lvconvert --type cache --cachepool anson-TA75MH2/lv_cache anson-TA75MH2/root
  Logical volume anson-TA75MH2/root is now cached.

ただし、これを実行した後、キャッシュされたパーティションのサイズを変更できません。

キャッシュされたパーティションを拡張しようとすると(この場合はrootという名前になります。ファイルシステムのルートになるためです)、次のエラーメッセージが表示されます。

# lvextend anson-TA75MH2/root -L +250G
  Unable to resize logical volumes of cache type.

キャッシュをオフにしてサイズを変更するにはどうすればよいですか?

参考のため:

sdaは私のメインの1TBハードドライブで、大きなLVMパーティションとlvmに移動する予定の縮小されたext4パーティションが含まれています。 sdbは安価な32GB SSDで、500MBのext2/bootパーティション、大きなlvmパーティション、8GBのスワップを備えています。

# vgs
  VG            #PV #LV #SN Attr   VSize   VFree  
  anson-TA75MH2   2   3   0 wz--n- 803.46g 499.96g
# pvs
  PV         VG            Fmt  Attr PSize   PFree  
  /dev/sda1  anson-TA75MH2 lvm2 a--  782.47g 499.96g
  /dev/sdb2  anson-TA75MH2 lvm2 a--   21.00g      0 
# lvs
  LV       VG            Attr       LSize   Pool     Origin       Data%  Meta%  Move Log Cpy%Sync Convert
  home     anson-TA75MH2 -wi-ao---- 250.47g                                                              
  lv_cache anson-TA75MH2 Cwi---C---  20.96g                                                              
  root     anson-TA75MH2 Cwi-aoC---  32.00g lv_cache [root_corig]

または、同じキャッシュを使用して複数のLVをキャッシュする方法がある場合は、それをお勧めします(ただし、オフにする方法を知りたいのですが)。しかし、私が試してみると、それは拒否されます:

# lvconvert --type cache --cachepool anson-TA75MH2/lv_cache anson-TA75MH2/home
  lv_cache is already in use by root
7
AJMansfield
lvconvert --uncache anson-TA75MH2/root

壊滅的なタイプミスの影響を受けにくいようです

lvremove anson-TA75MH2/lv_cache

しかし、manページのように、これらが主なオプションであると述べました。

7
user1133275

Lvmcache(7)のマンページでは、Originボリュームを削除せずにキャッシュプールを削除する方法について説明しています。

リンクされたオリジンLVを削除せずにキャッシュプールLVを削除する

これにより、必要に応じてデータがキャッシュプールからOrigin LVに書き戻され、キャッシュプールLVが削除されて、キャッシュされていないOrigin LVが残ります。

lvremove VG/CachePoolLV

例:

# lvs vg
  LV     VG   Attr       LSize   Pool   Origin
  cache0 vg   Cwi---C---  10.00g
  lvol0  vg   Cwi-a-C--- 100.00g cache0 [lvol0_corig]

# lvremove vg/cache0

# lvs vg
  LV    VG   Attr       LSize   Pool Origin
  lvol0 vg   -wi-a----- 100.00g

だから私の場合、私はlvremove anson-TA75MH2/lv_cache。これは、キャッシュプールを最初から再作成する必要がありますが、それは問題ありません。少し面倒です。 (これ以上の投稿がない場合は、数分以内にこれを行う予定です。)

6
AJMansfield