ZFS havuzum neden Linux'ta ZFS kullanarak genişlemiyor?


10

Linux üzerinde tek bir vdev olan 2.6.32-431.11.2.el6.x86_64 çekirdeğinin altında bir ZFS zpool var. Vdev bir SAN cihazıdır. Ben SAN boyutunu genişletti ve zpool rağmen sahip autoexpandolarak ayarlanmış onbile / ihracat, makinanın yeniden havuza ithal ve kullandıktan sonra, zpool online -eben havuz genişletmek için alamadı. Vdev'in daha büyük olduğundan eminim çünkü fdisk215GiB'den 250 GiB'ye yükseldiğini gösteriyor. İşte yaptığımın bir örneği:

[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      214G   207G  7.49G    96%  1.00x  ONLINE  -
[root@timestandstill ~]# zpool import -d /dev/disk/by-id/
   pool: dfbackup
     id: 12129781223864362535
  state: ONLINE
 action: The pool can be imported using its name or numeric identifier.
 config:

    dfbackup             ONLINE
      virtio-sbs-XLPH83  ONLINE
[root@timestandstill ~]# zpool import -d /dev/disk/by-id/ dfbackup
[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      214G   207G  7.49G    96%  1.00x  ONLINE  -
venuebackup   248G   244G  3.87G    98%  1.00x  ONLINE  -
[root@timestandstill ~]# zpool get autoexpand dfbackup
NAME      PROPERTY    VALUE   SOURCE
dfbackup  autoexpand  on      local
[root@timestandstill ~]# zpool set autoexpand=off dfbackup
[root@timestandstill ~]# zpool set autoexpand=on dfbackup
[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      214G   207G  7.49G    96%  1.00x  ONLINE  -
venuebackup   248G   244G  3.87G    98%  1.00x  ONLINE  -
[root@timestandstill ~]# zpool status -v dfbackup
  pool: dfbackup
 state: ONLINE
  scan: none requested
config:

    NAME                 STATE     READ WRITE CKSUM
    dfbackup             ONLINE       0     0     0
      virtio-sbs-XLPH83  ONLINE       0     0     0

errors: No known data errors
[root@timestandstill ~]# fdisk /dev/disk/by-id/virtio-sbs-XLPH83

WARNING: GPT (GUID Partition Table) detected on '/dev/disk/by-id/virtio-sbs-XLPH83'! The util fdisk doesn't support GPT. Use GNU Parted.


WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/disk/by-id/virtio-sbs-XLPH83: 268.4 GB, 268435456000 bytes
256 heads, 63 sectors/track, 32507 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

                             Device Boot      Start         End      Blocks   Id  System
/dev/disk/by-id/virtio-sbs-XLPH83-part1               1       27957   225443839+  ee  GPT

Command (m for help): q
[root@timestandstill ~]# zpool online -e dfbackup /dev/disk/by-id/virtio-sbs-XLPH83
[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      214G   207G  7.49G    96%  1.00x  ONLINE  -
venuebackup   248G   244G  3.87G    98%  1.00x  ONLINE  -
[root@timestandstill ~]# zpool status -v dfbackup
  pool: dfbackup
 state: ONLINE
  scan: none requested
config:

    NAME                 STATE     READ WRITE CKSUM
    dfbackup             ONLINE       0     0     0
      virtio-sbs-XLPH83  ONLINE       0     0     0

errors: No known data errors

Bu zpool'ı nasıl genişletebilirim?

Yanıtlar:


10

Ubuntu 16.04 üzerinde ZFS çalıştırıyorum ve çok deneme yanılma sonra, bu yeniden başlatmadan disk ve havuz boyutunu genişletmek için çalıştı. Sistemim Profitbricks'te bulutta barındırılıyor ve libvirt (SCSI değil) sürücüler kullanıyor.

Havuz ve cihaz ayrıntılarını alın:

# zpool status -v
   ...
    NAME        STATE     READ WRITE CKSUM
    pool        ONLINE       0     0     0
      vdb       ONLINE       0     0     0

# zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
pool  39.8G  27.1G  12.7G         -    49%    68%  1.00x  ONLINE  -

Otomatik genişletmeyi etkinleştir:

# zpool set autoexpand=on pool

Şimdi Profitbricks kontrol paneline giriş yapın ve disk boyutunu 40GB'dan 50GB'a çıkarın.

Disk boyutu değişikliği sistemini ve havuzu genişlet:

# partprobe
Warning: Not all of the space available to /dev/vdb appears to be used,
you can fix the GPT to use all of the space (an extra 10485760 blocks) or 
continue with the current setting?

# zpool online -e pool vdb

# partprobe

# zpool list
NAME   SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
pool  49.8G  27.1G  21.7G         -    40%    55%  1.00x  ONLINE  -

Neden olduğundan emin değilim, ancak değişiklikleri etkili hale getirmek için bazen partprobeve / veya zpool online -e pool vdbiki kez çalıştırmak gerekir .


1
Çözümünüz benimkiyle aynı mı? yani, zpool online -e pool vdbhile yapan komuttur. Şimdi bir dizi libvirt sunucusunda Linux üzerinde ZFS kullanıyorum ve bu benim için çalışıyor (partprobe olmadan)
Josh

Ayrıca, değişiklikleri etkili hale getirmek için yeniden başlatmam gerekiyordu, sonra partprobe(önce ve sonra çalıştır zpool online) bir yeniden başlatma ihtiyacını ortadan kaldırdığını keşfettim .
lfjeff

7

Ben freebsd forumlarda kullanılması önerilen bir yazı okudum zpool online -e <pool> <vdev>(ilk vdev çevrimdışı gerek olmadan)

Bu sonuçta çözümdü, ancak önce ZFS otomatik genişletmenin devre dışı bırakılması gerekiyordu :

[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      214G   207G  7.49G    96%  1.00x  ONLINE  -
[root@timestandstill ~]# zpool get autoexpand
NAME         PROPERTY    VALUE   SOURCE
dfbackup     autoexpand  on      local
[root@timestandstill ~]# zpool set autoexpand=off dfbackup
[root@timestandstill ~]# zpool online -e dfbackup /dev/disk/by-id/virtio-sbs-XLPH83
[root@timestandstill ~]# zpool list
NAME          SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
dfbackup      249G   207G  42.5G    82%  1.00x  ONLINE  -

Linux'ta ZFS kullanarak zpool'un benim için genişlemesini sağlamak için zpool set autoexpand=offbunu kullanmak zpool online -egerekiyordu (çekirdekte, FUSE kullanmadan)


Mantıklı değil. ZFS posta listesi, bir havuz genişletme gerçekleştirmeden önce çekirdek modülünün yeniden yüklenmesi gerektiğini gösterir.
ewwhite

Peki, üç yeniden başlatma, çoklu ihracat ve ithalat bir arada zpool online -eve zpool set autoexpand=offbenim için yaptı @wwhite ... Terminalimde tam geçmişim var. Sorunun ne olduğundan emin değilim.
Josh


Teşekkürler @whwhite. Daha yeni bir sürüm kullanmıyorum, bu sürüm en az 15 aylık. Sürümü nasıl bulacağımdan emin değilim.
Josh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.