[freebsd] zfs

5 views
Skip to first unread message

Nick Kostirya via freebsd

unread,
Jun 13, 2022, 10:52:59 AM6/13/22
to fre...@uafug.org.ua
Привет.

Вопрос про zfs. FreeBSD 13.1
Есть диск с zfs (созданный bsdinstall).
Затем добавили еще диск с целью перенести на нее систему, а второй оставить для разных больших файлов.
Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
В биосе сказал грузиться с нового диско, но FreeBSD все равно грузиться со старого диска.

Что еще нужно подкрутить?
_______________________________________________
freebsd mailing list
fre...@uafug.org.ua
http://mailman.uafug.org.ua/mailman/listinfo/freebsd

Владимир Друзенко via freebsd

unread,
Jun 13, 2022, 11:39:48 AM6/13/22
to fre...@uafug.org.ua
Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:
Привет.

Вопрос про zfs. FreeBSD 13.1
Есть диск с zfs (созданный bsdinstall).
Затем добавили еще диск с целью перенести на нее систему, а второй
оставить для разных больших файлов.
Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
В биосе сказал грузиться с нового диско, но FreeBSD все равно
грузиться со старого диска.

Что еще нужно подкрутить?

Название рутового пула случайно не одинаковое?

Nick Kostirya via freebsd

unread,
Jun 13, 2022, 11:58:03 AM6/13/22
to fre...@uafug.org.ua

Ой, оба из под bsdinstall, значит одинаковые. А как выкрутиться в этой ситуации?

Читаю про ZFS: все про зеркала рассказывают...
А как же поступают в такой ситуации: вставил диск с другой компьютера что-бы данные скопировать?

Eugene Grosbein

unread,
Jun 13, 2022, 2:44:46 PM6/13/22
to Nick Kostirya, fre...@uafug.org.ua
13.06.2022 22:57, Nick Kostirya via freebsd пишет:

> On Mon, 13 Jun 2022 18:39:41 +0300
> Владимир Друзенко via freebsd <fre...@uafug.org.ua> wrote:
>> Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:
>>>
>>> Вопрос про zfs. FreeBSD 13.1
>>> Есть диск с zfs (созданный bsdinstall).
>>> Затем добавили еще диск с целью перенести на нее систему, а второй
>>> оставить для разных больших файлов.
>>> Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
>>> В биосе сказал грузиться с нового диско, но FreeBSD все равно
>>> грузиться со старого диска.

Не надо было так делать. Есть гораздо более простой и быстрый путь:
добавить второй диск в существующий пул командой zpool attach poolname old_device new_device

Это делает пул зеркалом. Надо дождаться окончания зеркалирования данных,
проверяя прогресс командой zpool status. Затем можно удалить старый диск из пула
командой zpool detach.

Предварительно почитать man zpool-attach и man zpool-detach.
Важно не спутать с командой zpool add, которая тоже добавляет диск в пул,
но делает из пула не зеркало, а аналог gconcat, когда объём пула становится
суммарным объёмом двух дисков, данные распределяются по всему объёму и такой
пул уже невозможно разобрать потом, только через спасение данных и уничтожение пула целиком.

>>> Что еще нужно подкрутить?
>>
>> Название рутового пула случайно не одинаковое?
>
> Ой, оба из под bsdinstall, значит одинаковые. А как выкрутиться в этой ситуации?
>
> Читаю про ZFS: все про зеркала рассказывают...
> А как же поступают в такой ситуации: вставил диск с другой компьютера что-бы данные скопировать?

У пулов кроме имени есть уникальные ID, импортировать пул с тем же именем можно вручную по ID.
man zpool-import.

Nick Kostirya via freebsd

unread,
Jun 14, 2022, 6:32:15 AM6/14/22
to fre...@uafug.org.ua

Импортировать по ID получилось, если загрузиться с install флешки.
А при загрузке с диска один пулл, наверное, ложиться поверх второго.
Когда их назвал разными именами, то при загрузке импортировался только пулл с диска, с которого шла загрузка.
Почему, если имена совпадаю, загрузчик лезет в другой диск - не понятно.


Далее возник вопрос, как добраться до данных второго диска.
Некоторые каталоги оказываются пустые, например /usr/local/

# zpool import -N tank

# zfs list
tank 743M 107G 96K /zroot
tank/ROOT 740M 107G 96K none
tank/ROOT/default 740M 107G 740M /
tank/tmp 120K 107G 120K /tmp
tank/usr 484K 107G 96K /usr
tank/usr/home 196K 107G 196K /usr/home
tank/usr/ports 96K 107G 96K /usr/ports
tank/usr/src 96K 107G 96K /usr/src
tank/var 648K 107G 96K /var
tank/var/audit 96K 107G 96K /var/audit
tank/var/crash 96K 107G 96K /var/crash
tank/var/log 160K 107G 160K /var/log
tank/var/mail 104K 107G 104K /var/mail
tank/var/tmp 96K 107G 96K /var/tmp

# mount -t zfs tank/ROOT/default /mnt
# ll /mnt/usr/local/
total 0

# umount /mnt
# mount -t zfs tank/usr /mnt
# ll /mnt/
total 0


Почем так не понятно.

Eugene Grosbein

unread,
Jun 14, 2022, 6:43:03 AM6/14/22
to Nick Kostirya, fre...@uafug.org.ua
14.06.2022 17:32, Nick Kostirya via freebsd wrote:

> On Tue, 14 Jun 2022 01:44:22 +0700
> Eugene Grosbein <eu...@grosbein.net> wrote:
>
>> 13.06.2022 22:57, Nick Kostirya via freebsd пишет:
>>> On Mon, 13 Jun 2022 18:39:41 +0300
>>> Владимир Друзенко via freebsd <fre...@uafug.org.ua> wrote:
>>>> Nick Kostirya via freebsd писал(а) 2022-06-13 17:52:
>>>>>
>>>>> Вопрос про zfs. FreeBSD 13.1
>>>>> Есть диск с zfs (созданный bsdinstall).
>>>>> Затем добавили еще диск с целью перенести на нее систему, а второй
>>>>> оставить для разных больших файлов.
>>>>> Загрузился с флешки и bsdinstall создал на весь диск zfs и установил.
>>>>> В биосе сказал грузиться с нового диско, но FreeBSD все равно
>>>>> грузиться со старого диска.
>>
>> Не надо было так делать. Есть гораздо более простой и быстрый путь:
>> добавить второй диск в существующий пул командой zpool attach poolname old_device new_device

[skip]

>> У пулов кроме имени есть уникальные ID, импортировать пул с тем же именем можно вручную по ID.
>> man zpool-import.
>
> Импортировать по ID получилось, если загрузиться с install флешки.
> А при загрузке с диска один пулл, наверное, ложиться поверх второго.
> Когда их назвал разными именами, то при загрузке импортировался только пулл с диска, с которого шла загрузка.
> Почему, если имена совпадаю, загрузчик лезет в другой диск - не понятно.

Какой пул подхватился, туда и лезет.
Не рассчитана система на работу с одноименными пулами,
а точнее сказать она работает с ними не так, как ты ожидаешь.

> Далее возник вопрос, как добраться до данных второго диска.

Не надо заниматься этим в гамаке и на лыжах.
Убей один из пулов, освободившийся диск добавь в пул,
как выше написано и ZFS тебе сама всё скопирует.

forumforeign

unread,
Jun 14, 2022, 8:50:56 AM6/14/22
to fre...@uafug.org.ua
13.06.2022 21:44, Eugene Grosbein пише:
Не надо было так делать. Есть гораздо более простой и быстрый путь:
добавить второй диск в существующий пул командой zpool attach poolname old_device new_device

Это делает пул зеркалом. Надо дождаться окончания зеркалирования данных,
проверяя прогресс командой zpool status. Затем можно удалить старый диск из пула
командой zpool detach.
 

Вот тут я бы советовал делать не detach, в zpool split: у вас будет 2 одинаковых пула, но с разными названиями. Дальше на всякий случай поставить загрузчик на второй пул и можно уже орудовать пулами отдельно, не зависимо друг от друга.

Eugene Grosbein

unread,
Jun 14, 2022, 9:03:01 AM6/14/22
to forumforeign, fre...@uafug.org.ua
14.06.2022 19:50, forumforeign пишет:

Это зависит от того, что хочется получить в итоге - свободный диск или два пула,
занимающие разные диски.

Reply all
Reply to author
Forward
0 new messages