内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
01_linux
»
01_net
»
29 TGT で thin provision
トレース:
01_linux:01_net:29_tgt_thin_provision
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 29 TGT で thin provision ====== 下記はティスクで作成している解説 [[01_linux:01_net:32_centosでiscsi環境構築]] <color #ed1c24>TGTでシンプロビジョニングを利用する場合、TGTのバックエンドはディスクではなく、ファイルである必要があります。</color> Not all filesystems support FALLOC_FL_PUNCH_HOLE; if a filesystem doesn't support the operation, an error is returned. The operation is supported on at least the following filesystems: * XFS (since Linux 2.6.38) * ext4 (since Linux 3.0) * Btrfs (since Linux 3.7) * tmpfs(5) (since Linux 3.5) * gfs2(5) (since Linux 4.16) [[https://blog.csdn.net/bobpen/article/details/79445104|参考URL]] ===== 1. Sparseファイル作成 ===== これで500G のSparseファイル作成 # dd if=/dev/zero of=/mnt/disk.tgt bs=1 count=0 seek=500G 見た目上500Gだが、実使用量は0になります。 # du -h --apparent-size /mnt/disk.tgt 500G /mnt/disk.tgt # du -h /mnt/disk.tgt 0 /mnt/disk.tgt ===== 2.SpaseディスクをLUNとして追加 ===== # tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /mnt/disk.tgt ===== 3.シンプロビジョニングを有効にする ===== # tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 --params thin_provisioning=1 ===== 4.設定ファイルの場合 ===== 「params thin_provisioning=1」で指定する。 <code|/etc/tgt/targets.conf> default-driver iscsi <target iqn.2014-03.storage-server:disk1> backing-store /mnt/disk.tgt write-cache on params thin_provisioning=1 </target> </code> ===== 5. シンプロビジョニングの確認 ===== 「Thin-provisioning: Yes」となっていればOK <code> # tgt-admin -s LUN: 1 Type: disk SCSI ID: IET 00010001 SCSI SN: beaf11 Size: 536871 MB, Block size: 512 Online: Yes Removable media: No Prevent removal: No Readonly: No SWP: No Thin-provisioning: Yes Backing store type: rdwr Backing store path: /mnt/disk.tgt Backing store flags: </code> ==== クライアントから接続確認 ==== [[01_linux:01_net:31_iscsid]]で接続 今回はsdcで接続している状況で説明 <code> # ll /dev/disk/by-path/| grep sdc lrwxrwxrwx. 1 root root 9 Mar 24 00:40 ip-192.168.10.16:3260-iscsi-iqn.2014-03.storage-server:disk1-lun-1 -> ../../sdc </code> ==== discard_granularityを確認 ==== thin provisionが有効になっていると、「/sys/block/{BLOCK}/queue/discard_granularity」が0以外になっている # cat /sys/block/sdc/queue/discard_granularity 512 下記でUNMAPが有効になっている事が分かる。 <code> # sg_vpd -p 0xb2 /dev/sdc 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 </code> ===== クライアント側と、サーバ側で交互に確認 ===== -o discard でマウントしおくと、下記を自動で行ってくれる LVMの場合は、issue_discards=1 にしておくとOK ==== クライアントで確認 ==== === 1.マウントするとちゃんと500Gのディスクとしてマウントしている === <code> # mkfs.xfs /dev/sdc # mount /dev/sdc /mnt/ # df -h | grep mnt /dev/sdc 500G 33M 500G 1% /mnt </code> === 3.1Gフィアルを10個作成 === 当然容量は増える <code> # for i in `seq -w 0 10`; do dd if=/dev/zero of=/mnt/$i bs=1M count=1024 ; done # df -h | grep mnt /dev/sdc 500G 12G 489G 3% /mnt </code> === 5.ファイルを削除 === ファイル削除で容量は減る <code> # rm -rvf /mnt/* # df -h | grep mnt /dev/sdc 500G 33M 500G 1% /mnt </code> === 7.fstrim === <code> # fstrim /mnt </code> ==== サーバ側で確認 ==== === 2.mkfsで少し容量増えるけど、ほとんど利用されてない状態 === <code> # du -h /mnt/disk.tgt 251M /mnt/disk.tgt </code> === 4.サーバ側でも増えている === <code> # du -h /mnt/disk.tgt 12G /mnt/disk.tgt </code> === 6.サーバ側は減っていない === <code> # du -h /mnt/disk.tgt 12G /mnt/disk.tgt </code> === 8.クライアントでfstrim後はサーバ側でも減っている === <code> # du -h /mnt/disk.tgt 251M /mnt/disk.tgt </code> {{tag>iscsi tgt}}
01_linux/01_net/29_tgt_thin_provision.txt
· 最終更新: 2020/03/24 10:15 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ