このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
01_linux:01_net:29_tgt_thin_provision [2020/03/24 03:25] – 作成 matsui | 01_linux:01_net:29_tgt_thin_provision [2020/03/24 10:15] (現在) – matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 29 TGT で thin provision ====== | ====== 29 TGT で thin provision ====== | ||
+ | 下記はティスクで作成している解説 | ||
+ | [[01_linux: | ||
+ | <color # | ||
+ | |||
+ | Not all filesystems support FALLOC_FL_PUNCH_HOLE; | ||
+ | | ||
+ | is supported on at least the following filesystems: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===== 1. Sparseファイル作成 ===== | ||
+ | これで500G のSparseファイル作成 | ||
+ | |||
+ | # dd if=/ | ||
+ | |||
+ | 見た目上500Gだが、実使用量は0になります。 | ||
+ | # du -h --apparent-size / | ||
+ | 500G / | ||
+ | # du -h / | ||
+ | 0 / | ||
+ | |||
+ | ===== 2.SpaseディスクをLUNとして追加 ===== | ||
+ | |||
+ | # tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store / | ||
+ | |||
+ | ===== 3.シンプロビジョニングを有効にする ===== | ||
+ | |||
+ | # tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 --params thin_provisioning=1 | ||
+ | |||
+ | |||
+ | ===== 4.設定ファイルの場合 ===== | ||
+ | |||
+ | 「params thin_provisioning=1」で指定する。 | ||
+ | |||
+ | < | ||
+ | default-driver iscsi | ||
+ | |||
+ | <target iqn.2014-03.storage-server: | ||
+ | backing-store / | ||
+ | write-cache on | ||
+ | params thin_provisioning=1 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== 5. シンプロビジョニングの確認 ===== | ||
+ | 「Thin-provisioning: | ||
+ | |||
+ | < | ||
+ | # tgt-admin -s | ||
+ | LUN: 1 | ||
+ | Type: disk | ||
+ | SCSI ID: IET | ||
+ | SCSI SN: beaf11 | ||
+ | Size: 536871 MB, Block size: 512 | ||
+ | Online: Yes | ||
+ | Removable media: No | ||
+ | Prevent removal: No | ||
+ | Readonly: No | ||
+ | SWP: No | ||
+ | Thin-provisioning: | ||
+ | Backing store type: rdwr | ||
+ | Backing store path: / | ||
+ | Backing store flags: | ||
+ | </ | ||
+ | |||
+ | ==== クライアントから接続確認 ==== | ||
+ | |||
+ | [[01_linux: | ||
+ | |||
+ | |||
+ | 今回はsdcで接続している状況で説明 | ||
+ | < | ||
+ | # ll / | ||
+ | lrwxrwxrwx. 1 root root 9 Mar 24 00:40 ip-192.168.10.16: | ||
+ | </ | ||
+ | |||
+ | ==== discard_granularityを確認 ==== | ||
+ | |||
+ | thin provisionが有効になっていると、「/ | ||
+ | |||
+ | # cat / | ||
+ | 512 | ||
+ | |||
+ | 下記でUNMAPが有効になっている事が分かる。 | ||
+ | < | ||
+ | # sg_vpd -p 0xb2 / | ||
+ | Logical block provisioning VPD page (SBC): | ||
+ | Unmap command supported (LBPU): 1 | ||
+ | Write same (16) with unmap bit supported (LBWS): 1 | ||
+ | Write same (10) with unmap bit supported (LBWS10): 1 | ||
+ | Logical block provisioning read zeros (LBPRZ): 1 | ||
+ | Anchored LBAs supported (ANC_SUP): 0 | ||
+ | Threshold exponent: 0 | ||
+ | Descriptor present (DP): 0 | ||
+ | Provisioning type: 2 | ||
+ | </ | ||
+ | |||
+ | ===== クライアント側と、サーバ側で交互に確認 ===== | ||
+ | -o discard でマウントしおくと、下記を自動で行ってくれる | ||
+ | | ||
+ | |||
+ | |||
+ | ==== クライアントで確認 ==== | ||
+ | |||
+ | === 1.マウントするとちゃんと500Gのディスクとしてマウントしている === | ||
+ | |||
+ | < | ||
+ | # mkfs.xfs /dev/sdc | ||
+ | # mount /dev/sdc /mnt/ | ||
+ | # df -h | grep mnt | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === 3.1Gフィアルを10個作成 === | ||
+ | 当然容量は増える | ||
+ | < | ||
+ | # for i in `seq -w 0 10`; do dd if=/ | ||
+ | # df -h | grep mnt | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === 5.ファイルを削除 === | ||
+ | |||
+ | ファイル削除で容量は減る | ||
+ | < | ||
+ | # rm -rvf /mnt/* | ||
+ | # df -h | grep mnt | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | === 7.fstrim === | ||
+ | < | ||
+ | # fstrim /mnt | ||
+ | </ | ||
+ | |||
+ | ==== サーバ側で確認 ==== | ||
+ | |||
+ | === 2.mkfsで少し容量増えるけど、ほとんど利用されてない状態 === | ||
+ | |||
+ | < | ||
+ | # du -h / | ||
+ | 251M / | ||
+ | </ | ||
+ | |||
+ | === 4.サーバ側でも増えている === | ||
+ | < | ||
+ | # du -h / | ||
+ | 12G / | ||
+ | </ | ||
+ | |||
+ | === 6.サーバ側は減っていない === | ||
+ | < | ||
+ | # du -h / | ||
+ | 12G / | ||
+ | </ | ||
+ | |||
+ | === 8.クライアントでfstrim後はサーバ側でも減っている === | ||
+ | < | ||
+ | # du -h / | ||
+ | 251M / | ||
+ | </ | ||
{{tag> | {{tag> |