На сервере у меня есть каталог /opt/kafka/data/topics
.
$ du -hs /opt/kafka/data/topics
52M /opt/kafka/data/topics
Когда я tar этот каталог, как
$ tar czfv /tmp/topics.tar.gz /opt/kafka/data/topics
Я получаю размер файла, который имеет смысл
$ ls -alh /tmp/topics.tar.gz
-rw-r--r-- 1 user user 11M Jan 12 15:15 kafka
Однако, когда я загружаю topics.tar.gz
на свой локальный компьютер OS X и распаковываю его, он занимает 10 ГБ!
При более внимательном изучении содержимого /opt/kafka/data/topics
на сервере я заметил, что согласно ls
он содержит много файлов размером 10 МБ:
$ find /opt/kafka/data -type f -exec ls -alh {} \;
... [output]
-rw-r--r-- 1 user user 10M Jan 12 02:45 /opt/kafka/data/topics/user-entities-KTABLE-REDUCE-STATE-STORE-0000000178-changelog-1/00000000000000000000.index
-rw-r--r-- 1 user user 10M Jan 12 02:45 /opt/kafka/data/topics/user-entities-KSTREAM-KEY-SELECT-0000000123-repartition-2/00000000000000000012.index
... [and many more]
du
сообщает, что каждый из этих файлов размером 10 МБ имеет размер 0 байт:
$ du -h /opt/kafka/data/topics/user-entities-KTABLE-REDUCE-STATE-STORE-0000000178-changelog-1/00000000000000000000.index
0 /opt/kafka/data/topics/user-entities-KTABLE-REDUCE-STATE-STORE-0000000178-changelog-1/00000000000000000000.index
Так, что происходит? Очевидно, я что-то здесь упускаю:
du
сообщает 52M всего. Это имеет смысл, поскольку устройство, на котором монтируется/opt/kafka/data
, занимает всего 5 ГБ,df
сообщает, что оно заполнено только на 2% и все еще работает.tar
gzips содержимое до 10M. Это тоже имеет смысл.ls
сообщает, что многие файлы имеют размер 10 МБ на диске, и когда я распаковываю архив, я получаю 10 ГБ.du
сообщает, что каждый из этих файлов имеет размер 0 байт.mount
отчеты, что/dev/sdc on /opt/kafka/data type ext4 (rw,relatime,data=ordered)
Ничего не складывается. Есть ли какое-то прозрачное сжатие на диске, о котором я не знаю?