このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 10 / 昨日: 1
総計: 881
- Dokuwiki.fl8.jp(332)
- 05 rsync(16)
- 13 CentOS6メール設定(16)
- FreeBSD カーネル再構築(15)
最近の更新
このページへのアクセス
今日: 10 / 昨日: 1
総計: 881
下記はティスクで作成している解説
32_CentOSでiSCSI環境構築
TGTでシンプロビジョニングを利用する場合、TGTのバックエンドはディスクではなく、ファイルである必要があります。
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)
これで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
# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 --backing-store /mnt/disk.tgt
# tgtadm --lld iscsi --mode logicalunit --op update --tid 1 --lun 1 --params thin_provisioning=1
「params thin_provisioning=1」で指定する。
/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>
「Thin-provisioning: Yes」となっていればOK
# 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:
31 iscsidで接続
今回はsdcで接続している状況で説明
# 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
thin provisionが有効になっていると、「/sys/block/{BLOCK}/queue/discard_granularity」が0以外になっている
# cat /sys/block/sdc/queue/discard_granularity 512
下記でUNMAPが有効になっている事が分かる。
# 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
-o discard でマウントしおくと、下記を自動で行ってくれる
LVMの場合は、issue_discards=1 にしておくとOK
# mkfs.xfs /dev/sdc # mount /dev/sdc /mnt/ # df -h | grep mnt /dev/sdc 500G 33M 500G 1% /mnt
当然容量は増える
# 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
ファイル削除で容量は減る
# rm -rvf /mnt/* # df -h | grep mnt /dev/sdc 500G 33M 500G 1% /mnt
# fstrim /mnt
# du -h /mnt/disk.tgt 251M /mnt/disk.tgt
# du -h /mnt/disk.tgt 12G /mnt/disk.tgt
# du -h /mnt/disk.tgt 12G /mnt/disk.tgt