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

Пул ZFS RAID0 без резервирования

Я создал пул ZFS в Ubuntu 14.04 без указания параметров RAID или избыточности, записал в него некоторые данные, перезагрузил машину, и пул больше не доступен (UNAVAIL). У меня нет точной информации об ошибке, но в нем упоминается, что не было достаточной репликации. Я создал два хранилища данных в пуле, который состоит из 2 дисков по 3 ТБ. Мне порекомендовали ZFS из-за его возможностей дедупликации, и на данный момент меня не волнует избыточность.

На самом деле мне нужен только RAID0, поэтому в краткосрочной перспективе нет зеркалирования или избыточности. Есть ли способ сделать это с помощью ZFS или мне лучше с LVM?

zpool status -v:

sudo zpool status -v
  pool: cryptoporticus
 state: UNAVAIL
status: One or more devices could not be used because the label is missing 
    or invalid.  There are insufficient replicas for the pool to continue
    functioning.
action: Destroy and re-create the pool from
    a backup source.
   see: http://zfsonlinux.org/msg/ZFS-8000-5E
  scan: none requested
config:

    NAME        STATE     READ WRITE CKSUM
    cryptoporticus  UNAVAIL      0     0     0  insufficient replicas
      sda       ONLINE       0     0     0
      sdc       UNAVAIL      0     0     0

ОБНОВИТЬ

zpool export cyrptoporticus, затем zpool import cryptoporticus решил это на данный момент. Вероятно ли это снова при перезагрузке?

Вероятно, вы столкнулись с ситуацией, когда по крайней мере один из ваших используемых дисков стал недоступен. Это может быть прерывистым и разрешимым, обе реализации Linux (ZFS в Linux, а также zfs-fuse), похоже, иногда демонстрируют икоту, которую легко исправить с помощью zpool clear или zpool export / zpool import цикл.

Что касается вашего вопроса, да, ZFS прекрасно способна создавать и поддерживать пул без какой-либо избыточности, просто выдав что-то вроде zpool create mypool sdb sdc sdd.

Но лично я бы не стал использовать ZFS просто за его возможности дедупликации. Из-за своей архитектуры дедупликация ZFS потребует большого объема оперативной памяти и большого количества дисковых операций ввода-вывода для операций записи. Вы, вероятно, сочтете это неподходящим для пулов такого размера, как ваш, поскольку запись будет мучительно медленной. Если вам нужна дедупликация, вы можете посмотреть на реализации автономной дедупликации с меньшим объемом памяти и объемом ввода-вывода, например btrfs пакетная дедупликация на уровне файлов с использованием bedup или дедупликация на уровне блоков с использованием dupremove: https://btrfs.wiki.kernel.org/index.php/Deduplication

Это дубликат: Почему в результате перезагрузки одна сторона моего зеркала ZFS стала UNAVAIL?

В вашем случае имена устройств или символические ссылки в каталоге / dev / disk-by- * в вашей системе либо отсутствовали, либо были переименованы.

Лучше использовать /dev/disk-by-id устройства для вашего zpool вместо by-path, так как имена путей могут измениться. (грррр ... Ubuntu udev)

В /dev...

by-id/   by-path/ by-uuid/

Итак, мои катушки выглядят следующим образом (обратите внимание, как устройства не sda, sdb, и т.д.):

[root@BigHomie ~]# zpool status -v
  pool: vol0
 state: ONLINE
  scan: scrub repaired 0 in 0h1m with 0 errors on Sat May 24 17:14:09 2014
config:

    NAME                                            STATE     READ WRITE CKSUM
    vol0                                            ONLINE       0     0     0
      mirror-0                                      ONLINE       0     0     0
        scsi-SATA_OWC_Mercury_AccOW140403AS1321905  ONLINE       0     0     0
        scsi-SATA_OWC_Mercury_AccOW140403AS1321932  ONLINE       0     0     0
      mirror-1                                      ONLINE       0     0     0
        scsi-SATA_OWC_Mercury_AccOW140403AS1321926  ONLINE       0     0     0
        scsi-SATA_OWC_Mercury_AccOW140403AS1321922  ONLINE       0     0     0