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

при локальном монтировании снимка ZFS zvol выдается «Неверный аргумент»

Пытаюсь смонтировать снимок ZFS zvol. На zvol должен быть раздел ext2 (о чем свидетельствует виртуальная машина CentOS, для которой zvol в настоящее время используется iSCSI):

[root@test-vm ~]# file - < /dev/sdb
/dev/stdin: x86 boot sector; partition 1: ID=0x83, starthead 4, startsector 256, 6291200 sectors, code offset 0xb8
[root@test-vm ~]# file - < /dev/sdb1
/dev/stdin: Linux rev 1.0 ext2 filesystem data (mounted or unclean) (large files)

Однако mount всегда возвращает Invalid argument:

[root@freenas] /dev/zvol/vol01# ls
./                        zvol01                    zvol01@backups1           zvol01@manual-20140521s1  zvol01@manual-20140522s1
../                       zvol01@backup             zvol01@manual-20140521    zvol01@manual-20140522
[root@freenas] /dev/zvol/vol01# file - < zvol01
/dev/stdin: x86 boot sector; partition 1: ID=0x83, starthead 4, startsector 256, 6291200 sectors, code offset 0xb8
[root@freenas] /dev/zvol/vol01# file - < zvol01@backup
/dev/stdin: x86 boot sector; partition 1: ID=0x83, starthead 4, startsector 256, 6291200 sectors, code offset 0xb8
[root@freenas] /dev/zvol/vol01# file - < zvol01@backups1
/dev/stdin: data
[root@freenas] /dev/zvol/vol01# mkdir /tmp/zvol01
[root@freenas] /dev/zvol/vol01# mount -t ext2fs -r /dev/zvol/vol01/zvol01@backup /tmp/zvol01
mount: /dev/zvol/vol01/zvol01@backup: Invalid argument
[root@freenas] /dev/zvol/vol01# mount -t ext2fs -r /dev/zvol/vol01/zvol01@backups1 /tmp/zvol01
mount: /dev/zvol/vol01/zvol01@backups1: Invalid argument

Я предполагаю, что zvol01@backups1 правильная цель (т.е. первый раздел на блочном устройстве, zvol01@backup) - оба возвращаются Invalid argument, несмотря на.

Что мне здесь не хватает?

редактировать

Согласно запросу, вывод zfs list и zfs get all...

[root@freenas] ~# zfs list
NAME                   USED  AVAIL  REFER  MOUNTPOINT
vol01                 25.6G   358G   232K  /mnt/vol01
vol01/.system         1.44M   358G   244K  /mnt/vol01/.system
vol01/.system/cores    209K   358G   209K  /mnt/vol01/.system/cores
vol01/.system/samba4   506K   358G   506K  /mnt/vol01/.system/samba4
vol01/.system/syslog   517K   358G   517K  /mnt/vol01/.system/syslog
vol01/ds01             784M   358G   784M  /mnt/vol01/ds01
vol01/zvol01          24.9G   382G   113M  -

[root@freenas] ~# zfs get all vol01/zvol01
NAME          PROPERTY              VALUE                  SOURCE
vol01/zvol01  type                  volume                 -
vol01/zvol01  creation              Wed May 21 20:29 2014  -
vol01/zvol01  used                  24.9G                  -
vol01/zvol01  available             382G                   -
vol01/zvol01  referenced            113M                   -
vol01/zvol01  compressratio         1.00x                  -
vol01/zvol01  reservation           none                   default
vol01/zvol01  volsize               24G                    local
vol01/zvol01  volblocksize          4K                     -
vol01/zvol01  checksum              on                     default
vol01/zvol01  compression           lz4                    inherited from vol01
vol01/zvol01  readonly              off                    default
vol01/zvol01  copies                1                      default
vol01/zvol01  refreservation        24.8G                  local
vol01/zvol01  primarycache          all                    default
vol01/zvol01  secondarycache        all                    default
vol01/zvol01  usedbysnapshots       215K                   -
vol01/zvol01  usedbydataset         113M                   -
vol01/zvol01  usedbychildren        0                      -
vol01/zvol01  usedbyrefreservation  24.8G                  -
vol01/zvol01  logbias               latency                default
vol01/zvol01  dedup                 off                    inherited from vol01
vol01/zvol01  mlslabel                                     -
vol01/zvol01  sync                  standard               default
vol01/zvol01  refcompressratio      1.00x                  -
vol01/zvol01  written               221K                   -
vol01/zvol01  logicalused           74.4M                  -
vol01/zvol01  logicalreferenced     74.3M                  -

[root@freenas] ~# zfs get all vol01/zvol01@backup
NAME                 PROPERTY              VALUE                  SOURCE
vol01/zvol01@backup  type                  snapshot               -
vol01/zvol01@backup  creation              Thu May 22  1:48 2014  -
vol01/zvol01@backup  used                  215K                   -
vol01/zvol01@backup  referenced            113M                   -
vol01/zvol01@backup  compressratio         1.00x                  -
vol01/zvol01@backup  devices               on                     default
vol01/zvol01@backup  exec                  on                     default
vol01/zvol01@backup  setuid                on                     default
vol01/zvol01@backup  xattr                 on                     default
vol01/zvol01@backup  nbmand                off                    default
vol01/zvol01@backup  primarycache          all                    default
vol01/zvol01@backup  secondarycache        all                    default
vol01/zvol01@backup  defer_destroy         off                    -
vol01/zvol01@backup  userrefs              0                      -
vol01/zvol01@backup  mlslabel                                     -
vol01/zvol01@backup  refcompressratio      1.00x                  -
vol01/zvol01@backup  written               113M                   -
vol01/zvol01@backup  clones                                       -
vol01/zvol01@backup  logicalused           0                      -
vol01/zvol01@backup  logicalreferenced     74.3M                  -

[root@freenas] /dev/zvol/vol01# gpart show
=>      63  16777153  da0  MBR  (8.0G)
        63   1930257    1  freebsd  [active]  (942M)
   1930320        63       - free -  (31k)
   1930383   1930257    2  freebsd  (942M)
   3860640      3024    3  freebsd  (1.5M)
   3863664     41328    4  freebsd  (20M)
   3904992  12872224       - free -  (6.1G)

=>      0  1930257  da0s1  BSD  (942M)
        0       16         - free -  (8.0k)
       16  1930241      1  !0  (942M)

=>       34  286749421  da1  GPT  (136G)
         34         94       - free -  (47k)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  282555023    2  freebsd-zfs  (134G)

=>       34  286749421  da2  GPT  (136G)
         34         94       - free -  (47k)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  282555023    2  freebsd-zfs  (134G)

=>       34  286749421  da3  GPT  (136G)
         34         94       - free -  (47k)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  282555023    2  freebsd-zfs  (134G)

=>       34  286749421  da4  GPT  (136G)
         34         94       - free -  (47k)
        128    4194304    1  freebsd-swap  (2.0G)
    4194432  282555023    2  freebsd-zfs  (134G)

=>      63  50331585  zvol/vol01/zvol01@backup  MBR  (24G)
        63       193                            - free -  (96k)
       256   6291200                         1  linux-data  (3G)
   6291456  44040192                            - free -  (21G)

=>      63  50331585  zvol/vol01/zvol01-clone-backup  MBR  (24G)
        63       193                                  - free -  (96k)
       256   6291200                               1  linux-data  (3G)
   6291456  44040192                                  - free -  (21G)

Редактировать # 2

Нашел в dmesg:

ext2fs: zvol/vol01/zvol01@backup: wrong magic number 0 (expected 0xef53)
ext2fs: zvol/vol01/zvol01@backups1: wrong magic number 0 (expected 0xef53)
ext2fs: zvol/vol01/zvol01-clone-backup: wrong magic number 0 (expected 0xef53)
ext2fs: zvol/vol01/zvol01-clone-backups1: wrong magic number 0 (expected 0xef53)

Есть ли что-то еще, что мне нужно сделать с блочным устройством, прежде чем оно будет смонтировано?

Вы пытаетесь смонтировать zvol, который был экспортирован на виртуальную машину Linux, на FreeNAS на базе FreeBSD?!?

Если да, вам нужно проверить несколько вещей. Пожалуйста, опубликуйте вывод zfs list и zfs get all poolname/filesystem.

Во-первых, видимость снимка zvol может быть установлена ​​неправильно. Это делается через snapdev ZFS свойство. Но это решение по принципу "все или ничего". Если у вас много снимков zvols, лучше оставить этот параметр отключенным.

Другой подход к использованию снимка zvol - это клон файловая система. Что-то вроде:

zfs clone vol01/zvol01@backups1 vol01/temporaryname 

Это создаст новый zvol на основе снимка. Будет создано соответствующее блочное устройство, которое вы сможете смонтировать с помощью команды ext2fs mount. Что-то вроде fdisk -l покажет вам настоящие имена устройств.


Редактировать:

Я часто делаю это в Linux с ZFS.

zfs clone vol0/pprovol@april vol0/april # clone the zvol snapshot to new filesystem
# fdisk -l shows a new block device at /dev/zd16p1
mount -t xfs -o nouuid /dev/zd16p1 /restore # Mount filesystem using new block device

Как сказал MikeyB, вы не можете смонтировать диск, содержащий раздел, как сам раздел. Вам нужно использовать программу, которая разрешит прямой доступ к разделам на диске.

Я не слишком знаком с FreeBSD, но в Linux я бы использовал

# kpartx -a /dev/zvol/vol01/zvol01-clone-backup разделить том на разделы, которые будут отображаться как /dev/zvol/vol01/zvol01-clone-backup1

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

Когда закончите, сделайте:

# kpartx -d /dev/zvol/vol01/zvol01-clone-backup и ты вернулся к своему прямому стандарту звол.

Надеюсь, это поможет!

Кроме того, в этом контексте не забудьте поискать zfs promotion.

Может также добавить некоторую пользу в контексте здесь.

например. http://www.machine-unix.com/promoting-a-zfs-file-system/

Это не делает полный клон в традиционном смысле, а скорее переключает направление снимка, можно сказать.

Итак, A => A @ snapshot => snapshot @ clone

xfs delete A @ snapshot .. ошибка (есть зависимый клон).

zfs продвигает снимок @ clone ...

zfs delete A @ snapshot .. error (есть зависимый клон, NOW A вместо snapshot @ clone).

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

(Я в основном немного расширял сообщение ewwhite выше).

Да, и для справки, я думаю, что пример создания такой копии был бы например.

zfs send -R pool / A {, снимок} | zfs получает pool / B (или просто A, если вы не хотите дублировать обе том и снимок),

Я тестировал это на Linux.

Вы должны выслушать ошибку.

Вы пытаетесь установить диск с таблицей разделов как том ext2. Это не сработает.

Вам нужно создать устройство geom, которое потребляет zvol01 со смещением 256 секторов в устройство, и смонтировать его.

Как именно вы это делаете… оставляем читателю в качестве упражнения :)