FALLOCATE
Section: User Commands (1)
Updated: April 2014
Index
Return to Main Contents
名前
fallocate - ファイルのスペースを事前割り当てまたは解放する。
書式
fallocate
[-c|-p|-z]
[-o
offset]
-l
length
[-n]
filename
fallocate -d
[-o
offset]
[-l
length]
filename
fallocate -x
[-o
offset]
-l
length
filename
説明
fallocate
は割り当てられたファイルのディスクスペースを操作 (解放または事前割り当て) するために使われる。
fallocate システムコールをサポートするファイルシステムにおいて、
ブロックを割り当て、そのブロックが初期化されていないとマークすることで、
データブロックに I/O を必要としないので、事前割り当てが高速に行える。
これは、ファイルを作成して 0 で埋めるより、ずっと高速である。
fallocate
の返り値は、成功の場合は 0、失敗の場合は 1 である。
オプション
length
と
offset
引き数の後には倍数のサフィックス KiB (=1024),
MiB (=1024*1024), GiB, TiB, PiB, EiB, ZiB, YiB などを付けることができる
("iB" はオプションであり、例えば "K" は "KiB" と同じ意味である)。
または、サフィックス KB (=1000), MB (=1000*1000),
GB, TB, PB, EB, ZB, YB などを付けることができる。
オプション
--collapse-range, --dig-holes, --punch-hole,
--zero-range
は、どれか 1 つしか指定できない。
- -c, --collapse-range
-
指定したバイト範囲をファイルから削除する。
その際、ホールを残さない。
削除されるバイト範囲は
offset
から始まる
length
バイトの範囲である。
操作が完了すると、ファイルの
offset+length
の位置からから始まる内容が
offset
の位置に見えるようになり、
ファイルのサイズは
length
バイトだけ小さくなる。
オプション
--keep-size
は範囲削除操作に指定できない。
Linux 3.15 以降の ext4 (エクステントベースのファイルのみ) と XFS で利用可能である。
効率的に動作する実装にするため、ファイルシステムはこの操作の粒度に
制限を設けることがある。
通常は offset と length はファイルシステムの論理ブロックサイズの倍数でなければならない。
論理ブロックサイズはファイルシステムの種類や設定により様々である。
ファイルシステムにこのような要求条件がある場合、
その要求条件が満たされていなければ、fallocate はエラー EINVAL で失敗する。
- -d, --dig-holes
-
ホールを検知と作成を行う。
このオプションは、追加のディスクスペースを使わずに、
ファイルをスパース (sparse: まばら) にする。
ホールの最小サイズはファイルシステムの I/O ブロックサイズに依存する
(通常は 4096 バイトである)。
さらに、このオプションを使うと、
--keep-size
が暗黙のうちに指定される。
範囲が
--offset
と
--length
で指定されない場合、ホールをファイル全体で分析する。
このオプションは、
"cp --sparse"
を行って、追加のディスクスペースを必要とせずに、
コピー先ファイルを元のファイルにリネームするのと同じと考えられる。
サポートされるファイルシステムのリストは、--punch-hole を参照すること。
- -i, --insert-range
-
既存のデータをシフトさせ、
offset
から
length
バイトのホールを挿入する。
- -l, --length length
-
範囲の長さをバイト単位で指定する。
- -n, --keep-size
-
ファイルの外見の長さを変更しない。
このオプションは EOF の後に、効率的にブロックを割り当てられる。
このブロックは切り詰めて削除できる。
- -o, --offset offset
-
範囲の開始オフセットを、バイト単位で指定する。
- -p, --punch-hole
-
offset
で始まる
length
バイトの領域の空間を解放する (ホールを作成する)。
指定された範囲のうち、
部分的に使用しているファイルシステムブロックは 0 で埋められ、
全体を使用しているファイルシステムブロックはそのファイルから
削除される。
呼び出しが成功すると、これ以降のこの範囲からの読み出しでは 0 を返す。
このオプションは
--zero-range
と同時に指定できない。
このオプションを使うと、
--keep-size
が暗黙のうちに指定される。
XFS (Linux 2.6.38 以降), ext4 (Linux 3.0 以降),
Btrfs (Linux 3.7 以降), tmpfs (Linux 3.5 以降) でサポートされる。
- -v, --verbose
-
詳細表示モードを有効にする。
- -x, --posix
-
POSIX 操作モードを有効にする。
このモードでは割り当て操作は常に完了するが、ファイルが作られる
ファイルシステムが高速な割り当てをサポートしていない場合、
長い時間がかかる。
- -z, --zero-range
-
offset
で始まる
length
バイト範囲の空間をゼロ埋めする。
指定された範囲の中では、ブロックは、そのファイル内のホールが広がる
領域にあらかじめ割り当てられたものである。
呼び出しが成功すると、これ以降のこの範囲からの読み出しでは 0 を返す。
ゼロ埋めは、ファイルシステム内部では、指定された範囲を書き込みを
伴わないエクステントに変換する方法をできるだけ使って行われる。
この方法は、指定された範囲について物理的にゼロ埋めしたデータが
デバイスに書き込まれるのではないことを意味する
(例外は指定された範囲の端の部分的に使用しているブロックである)。
(これ以外で) I/O が必要なのはメタデータの更新だけである。
ファイルの長さを変更しないように、オプション --keep-size が指定できる。
Linux 3.14 以降の ext4 (エクステントベースのファイルのみ) と XFS で利用可能である。
- -V, --version
-
バージョン情報を表示して、終了する。
- -h, --help
-
ヘルプを表示して、終了する。
著者
Eric Sandeen
Karel Zak
関連項目
truncate(1),
fallocate(2),
posix_fallocate(3)
入手方法
fallocate コマンドは util-linux パッケージの一部であり、
Linux Kernel Archive
から入手できる。
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 著者
-
- 関連項目
-
- 入手方法
-
This document was created by
man2html,
using the manual pages.
Time: 17:13:47 GMT, April 11, 2020