Действительно ли безопасно использовать tar, даже если существуют некоторые символы кроме ASCII в именах файлов и путях?

Если Вы находитесь все еще в стадии проектирования (т.е. Вы уже не посвящаете себя mdadm и/или lvm), затем я recommened, что Вы серьезно рассматриваете использование современной файловой системы как Btrfs или ZFS.

btrfs встроен к магистрали ядро Linux, и zfs доступен с zfsonlinux веб-сайта как легко устанавливаемые модули ядра или dkms пакеты для большинства дистрибутивов Linux. Существует также PPA Ubuntu для zfsonlinux.

И ZFS и btrfs имеют превосходные, простые в использовании инструменты для руководящих дисков и групп дисков. Они также реализуют обнаружение ошибок и исправление (в значительной степени важный с большими современными дисками, поскольку ошибки статистически почти гарантируются), подобъемы, создание снимков (включая доступ к и/или откат предыдущих версий), и у них обоих есть очень полезный основанный на снимке метод отправки полного резервного копирования, или инкрементное резервное копирование в другую машину (zfs отправляют/получают, и btrfs отправляют/получают). У обоих есть много других особенностей и преимуществ, слишком долго для списка здесь.

Еще одно большое преимущество, которое ZFS и btrfs имеют по lvm, состоит в том, что lvm логические тома имеют фиксированный размер (отчасти как раздел виртуального диска), и необходимо сделать специальные шаги, если необходимо вырастить или уменьшить размер lv (например, если Вы сделаете ошибку и выделите слишком много места к/usr и недостаточно к / var, то у Вас будет большая работа перед Вами для фиксации этого). С ZFS и btrfs, подобъем больше похож на выделение мягкой квоты (с дополнительным резервированием) от общего пространства, и изменение выделения является тривиальным процессом, который не требует никакой файловой системы 'манипулирование' (резервные/восстановления/перемещения файлы вокруг). На самом деле Вы не должны даже устанавливать квоту на подобъем, если Вы не захотите к - то все подобъемы счастливо совместно используют общий пул свободного места.

ZFS имеет понятие пулов, которые составлены из виртуальных устройств (vdevs), которые, в свою очередь, составлены из физических устройств (т.е. диски). Используя ZFS, Ваши диски могли быть настроены как единственный пул, содержащий два vdevs, один с массивом RAID-5, составленным из дисков на 3x2 ТБ и одного составленного из массива RAID-5 дисков на 3x1 ТБ. vdevs чередуются для составления пула. (BTW, raid5 и raid6 ZFS не на самом деле raid5 или raid6, он просто работает очень похоже. это назвало набег-z),

Одна из хороших вещей о ZFS - то, что можно легко заменить диски в vdev и когда Вы заменяете все диски в vdev с более крупными дисками, затем дополнительное пространство автоматически сделано доступным для устройства хранения данных. например, если бы Вы заменяете один или два из дисков на 3x1 ТБ с дисками на 2 ТБ, Вы не получили бы дополнительного пространства, но как только Вы заменили третий диск, Вы немедленно получите дополнительное пространство.

Можно также добавить другой vdev (т.е. составленный из одного или нескольких дисков) в любое время. например, Вы могли добавить пару дисков на 4 ТБ или на 3 ТБ. Можно заменить диски в vdev, но Вы не можете удалить vdev из пула - если необходимо сделать это, единственный путь состоит в том, чтобы скопировать, уничтожить пул и создать новый пул с нуля.

Btrfs недавно стал экспериментальным, raid-5/6 поддерживают, и поддерживал raid-0/1/10 в течение нескольких лет. Это концептуально очень отличается к zfs, и существуют некоторые вещи, это добивается большего успеха, чем zfs (например, "изменяющие баланс" данные через диски, когда Вы добавляете или изменяете диски в btrfs файловой системе), но в целом это имеет меньше функций, чем zfs. Большое преимущество состоит в том, что это находится в ядре магистрали, и таким образом стандарт - гарантировал, что был доступен в любой современной системе Linux.

btrfs имеет определенную поддержку использования дисков различных размеров, включенных при помощи -d single опция mkfs.btrfs. Посмотрите Используя Btrfs с Несколькими Устройствами для деталей.

4
01.12.2014, 17:43
1 ответ

Вы, конечно, можете прочитать исходный код tar , чтобы убедиться в этом сами.

Проще говоря, tar не интерпретирует последовательность байтов, составляющих имя файла. Как и ядро, оно рассматривает его как абстрактную последовательность байтов. Так что это «безопасно» в том смысле, что будут извлечены пригодные для использования файлы.

В среде, в которой файлы распаковываются, пользовательские инструменты могут интерпретировать имена файлов как разные символы; это всегда проблема с изменением локали, а не только для транспорта (tar, NFS, FTP, ...).

1
27.01.2020, 21:01

Теги

Похожие вопросы