Я создал пул 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