Назад | Перейти на главную страницу

Более точный способ узнать размер файловой системы ZFS?

У меня возникли проблемы с резервным копированием файловой системы ZFS из-за нехватки места на моих устройствах резервного копирования.

Первый раз забыл, что сжатие включено. Однако во второй попытке я получил степень сжатия файловой системы, а также видимый размер, возвращенный ду.

Они согласовали друг с другом размер:

louis@watson:~$ sudo zpool list
NAME     SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
watson  3.62T  2.74T   904G    75%  1.00x  ONLINE  -

louis@watson:~$ sudo zfs list 
NAME            USED  AVAIL  REFER  MOUNTPOINT
watson         2.74T   846G    30K  none
watson/gelato  2.73T   846G  2.67T  /data/gelato

louis@watson:~$ sudo zfs get compressratio watson/gelato
NAME           PROPERTY       VALUE  SOURCE
watson/gelato  compressratio  1.64x  -

Я ожидал, что 2,67 ТБ в сжатом виде с экономией в 1,64 раза можно будет разместить на диске 6 ТБ, как было подтверждено ду:

louis@watson:~$ cd /data/gelato/
louis@watson:/data/gelato$ sudo du -hs --apparent-size
4.6T    .

Но мне снова не хватило места во время резервного копирования, и я не уверен, почему. Вероятно, оставалось менее 1 ТБ для копирования, когда на диске 6 ТБ закончилось место. Тем не менее, это далеко не все, что, как мне кажется, могло бы объяснить расхождение.

Снимки:

louis@watson:~$ sudo zfs list -o space
NAME           AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
watson          846G  2.74T         0     30K              0      2.74T
watson/gelato   846G  2.73T     53.6G   2.67T              0          0
watson/home     846G  15.8G     57.3M   15.8G              0          0

Есть ли лучший способ получить фактический размер данных, хранящихся в сжатой файловой системе ZFS?

Следует упомянуть, что для резервного копирования я использую rsync -avh. На целевом диске я не вижу снимков (..... /. Zfs / snapshot). Означает ли это, что снимки не копируются?

Что следует учитывать:

  • Проверьте размер записи (с zfs list -o recsize watson/gelato) как источника, так и цели. Если у вас много небольших данных, но большой размер записи, пространство будет потрачено впустую. Напротив, пространство также тратится впустую из-за заголовков и метаданных, но обычно эффект не так заметен. Если вы разделяете файловую систему через SMB / CIFS, вы можете увидеть разницу, используя окно свойств папки Windows Explorer.
  • Проверьте выравнивание секторов (смещение) на обоих приводах и сравните со спецификациями привода (их можно найти в технических паспортах модели привода). Неправильная установка может негативно сказываются на пространстве вашего бассейна (в этом примере он потерял около 9%).
  • Проверьте, если copies свойство когда-либо было установлено на значение 1 или больше (это могло быть установлено и отключено в прошлом, и копии были бы созданы для любых вновь записанных данных в период между ними).
  • Получите более подробную информацию о том, как пространство используется со свойствами usedbychildren, usedbydataset, usedbyrefreservation, и usedbysnapshots. Они подводят итог used, так что это не будет ничего нового, но может помочь идентифицировать старые снимки и тому подобное.
  • Чтобы увидеть объем пространства, используемого данными и метаданными, как если бы сжатие было отключено, проверьте свойства logicalused и logicalreferenced
  • Из-за различий в указании размеров данных (основание 2 и основание 10) ваш диск на 6 ТБ фактически имеет всего около 5,457 ТиБ (на 9% меньше, чем предполагалось).

Я бы предложил zpool list.

Я бы также проверил использование снимков. Есть ли в вашей среде какие-либо снимки?