Tại sao nhóm ZFS của tôi không mở rộng bằng ZFS trên Linux?


10

Tôi có một zpool ZFS trên linux trong kernel 2.6.32-431.11.2.el6.x86_64 có một vdev duy nhất. Các vdev là một thiết bị SAN. Tôi đã mở rộng kích thước của SAN và mặc dù zpool đã autoexpandđược đặt on, ngay cả sau khi khởi động lại máy, xuất / nhập nhóm và sử dụng zpool online -e, tôi không thể mở rộng nhóm. Tôi chắc chắn rằng vdev lớn hơn vì fdiskcho thấy nó đã tăng từ 215GiB lên 250 GiB. Đây là một ví dụ về những gì tôi đã làm:

[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

Làm thế nào tôi có thể mở rộng zpool này?

Câu trả lời:


10

Tôi đang chạy ZFS trên Ubuntu 16.04 và sau nhiều lần thử và lỗi, đây là cách hoạt động để mở rộng kích thước ổ đĩa và nhóm mà không cần khởi động lại. Hệ thống của tôi được lưu trữ trên đám mây tại Profitbricks và sử dụng các ổ libvirt (không phải SCSI).

Nhận thông tin chi tiết về hồ bơi và thiết bị:

# 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  -

Kích hoạt tự động mở rộng:

# zpool set autoexpand=on pool

Bây giờ hãy đăng nhập vào bảng điều khiển Profitbricks và tăng kích thước đĩa từ 40 GB lên 50 GB.

Thông báo hệ thống thay đổi kích thước đĩa và mở rộng nhóm:

# 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  -

Tôi không chắc tại sao, nhưng đôi khi cần phải chạy partprobevà / hoặc zpool online -e pool vdbhai lần để thay đổi có hiệu quả.


1
Có vẻ như giải pháp của bạn giống như của tôi? cụ thể zpool online -e pool vdblà lệnh thực hiện thủ thuật. Tôi hiện đang sử dụng ZFS-on-Linux trên một số máy chủ libvirt và nó hoạt động với tôi (không có partprobe)
Josh

Tôi cũng phải khởi động lại để thay đổi có hiệu quả, sau đó tôi phát hiện ra rằng partprobe(chạy trước và sau zpool online) đã loại bỏ nhu cầu khởi động lại.
lfjeff

7

Tôi đã đọc trên các diễn đàn freebsd một bài đăng được đề xuất sử dụng zpool online -e <pool> <vdev>(mà không cần ngoại tuyến vdev trước)

Đây cuối cùng là giải pháp, nhưng yêu cầu mở rộng tự động ZFS trước tiên :

[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  -

Sử dụng zpool set autoexpand=offtheo sau zpool online -elà bắt buộc để có được zpool để mở rộng cho tôi, sử dụng ZFS trên linux (trong kernel, không sử dụng FUSE)


Điều đó không có ý nghĩa. Danh sách gửi thư ZFS chỉ ra cần phải tải lại mô-đun hạt nhân trước khi có thể chạy mở rộng nhóm.
ewwhite

Chà, một số kết hợp của ba lần khởi động lại, nhiều lần xuất và nhập, zpool online -ezpool set autoexpand=offđã làm điều đó cho tôi @ewwhite ... Tôi có toàn bộ lịch sử có sẵn trong thiết bị đầu cuối của mình. Không chắc vấn đề là gì sau đó.
Josh


Cảm ơn @ewwhite. Tôi không sử dụng phiên bản mới hơn, phiên bản này ít nhất 15 tháng tuổi. Tôi không chắc chắn làm thế nào cụ thể để tìm phiên bản.
Josh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.