ユーザ用ツール

サイト用ツール


01_linux:01_net:29_tgt_thin_provision

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:01_net:29_tgt_thin_provision [2020/03/24 03:41] matsui01_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:01_net:32_centosでiscsi環境構築]] [[01_linux:01_net:32_centosでiscsi環境構築]]
  
行 19: 行 19:
      
         gfs2(5) (since Linux 4.16)         gfs2(5) (since Linux 4.16)
 +
 +
 +[[https://blog.csdn.net/bobpen/article/details/79445104|参考URL]]
  
 ===== 1. Sparseファイル作成 ===== ===== 1. Sparseファイル作成 =====
 これで500G のSparseファイル作成 これで500G のSparseファイル作成
  
-  # dd if=/dev/zero of=file.img bs=1 count=0 seek=500G+  # dd if=/dev/zero of=/mnt/disk.tgt bs=1 count=0 seek=500G
  
 見た目上500Gだが、実使用量は0になります。 見た目上500Gだが、実使用量は0になります。
-  # du -h --apparent-size file.img  +  # du -h --apparent-size /mnt/disk.tgt  
-  500G    file.img +  500G    /mnt/disk.tgt 
-   +  # du -h /mnt/disk.tgt  
-  # du -h file.img  +  0       /mnt/disk.tgt 
-  0       file.img+ 
 +===== 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}} {{tag>iscsi tgt}}
01_linux/01_net/29_tgt_thin_provision.1585021261.txt.gz · 最終更新: 2020/03/24 03:41 by matsui