2進接頭辞
wikipedia
https://ja.wikipedia.org/wiki/2%E9%80%B2%E6%8E%A5%E9%A0%AD%E8%BE%9E
2進接頭辞とSI接頭辞
IEC規格でない旧来の2進接頭辞とSI接頭辞の使い分けは分野や場合によっては曖昧で混乱しており、キロがSI接頭辞の1000であるか2進接頭辞の1024であるかはそれだけではわからない事もある。キロでは双方の差は約2%だが、メガで約5%、ギガで約7%、テラで約10%と乗数が大きくなるにつれその差も大きくなる。俗に、1024にはkではなくKを用い、「ケー」と称するという流儀もある。
ちゃんと表記統一しろや
ストレージのサイズ調べるのにどっちの単位やねんと思うことがあるので各コマンドの表記と単位をメモした
間違ってたらご指摘ください。
環境
CentOS7
df
-k もしくはオプションなし
IEC単位。KiB。1K-ブロックの列。
# df
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda2 52403200 7432604 44970596 15% /
-m
IEC単位。MiB。1M-ブロックの列。
# df -m
ファイルシス 1M-ブロック 使用 使用可 使用% マウント位置
/dev/sda2 51175 7259 43917 15% /
-h
IEC単位。表記はG,M,K。
# df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/sda2 50G 7.1G 43G 15% /
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.8G 4.0K 1.8G 1% /dev/shm
tmpfs 1.8G 25M 1.8G 2% /run
df -H
SI単位。表記はG,M,k。
# df -H
/dev/sda2 54G 7.7G 47G 15% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 2.0G 4.1k 2.0G 1% /dev/shm
tmpfs 2.0G 27M 1.9G 2% /run
lsblk
IEC単位。表記はG,M。
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232.9G 0 disk
tqsda1 8:1 0 1G 0 part /boot
tqsda2 8:2 0 50G 0 part /
tqsda3 8:3 0 3.8G 0 part [SWAP]
tqsda4 8:4 0 512B 0 part
tqsda5 8:5 0 10G 0 part /home
sr0 11:0 1 1024M 0 rom
gdisk, sgdisk
IEC単位。表記はGiB,MiBとちゃんと表記してくれる。
# gdisk -l /dev/sda
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
2 2099200 106956799 50.0 GiB 8300 Linux filesystem
3 106956800 114823167 3.8 GiB 8200 Linux swap
5 114825216 135796735 10.0 GiB 8300 Linux filesystem
6 135798784 156770303 10.0 GiB 8300 Linux filesystem
parted
IEC、SI両方に対応。
デフォルトだとSI単位。
unit オプションで変更可能。
(parted) help unit
unit UNIT デフォルトの単位を UNIT にする
UNIT は次のうちから選びます: s, B, kB, MB, GB, TB, compact, cyl, chs, %, kiB, MiB, GiB, TiB
ceph
cephは表記がまぎらわしい。IEC規格に準拠していないっぽい。
ceph df
おそらくIEC単位。表記はG,M,k。
# ceph df
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
30720M 27434M 3285M 10.70
ceph status
おそらくIEC単位。表記はGB、MB、kBなのでまぎらわしい。
data:
pools: 3 pools, 156 pgs
objects: 38 objects, 41259 kB
usage: 3285 MB used, 27434 MB / 30720 MB avail
pgs: 156 active+clean
rbd create
rbd create --size {megabytes} {pool-name}/{image-name}
公式でメガバイトとか言ってるけど本当はMiB単位で指定する。
# rbd create --size 10240 rbd/rbd_img
rbd info
IEC単位。表記はMB, kBなのでまぎらわしい。
# rbd info rbd/rbd_img
rbd image 'rbd_img':
size 10240 MB in 2560 objects
order 22 (4096 kB objects)