Khi nâng cấp phiên bản VPS trên Vultr, hệ thống tệp Linux sẽ tự động thay đổi kích thước. Khi chạy FreeBSD với hệ thống tệp ZFS nâng cao, một số công việc thủ công là bắt buộc. Hướng dẫn này giả định rằng tài khoản của chúng tôi vừa được nâng cấp để bao gồm thêm dung lượng lưu trữ và thực hiện các bước thay đổi kích thước khối lượng ZFS. Trong ví dụ này, chúng tôi giả sử cài đặt FreeBSD hoặc TrueOS với ZFS làm hệ thống tệp gốc. Hướng dẫn này sẽ hoạt động cho các hệ điều hành tương tự, chẳng hạn như FreeNAS.
Đầu tiên, chúng ta sẽ có một ý tưởng về kích thước và cách bố trí của ổ cứng. Từ đây trở đi, chúng tôi sẽ cho rằng ổ cứng của chúng tôi là thiết bị "vtbd0", ổ cứng đầu tiên trong quá trình cài đặt FreeBSD. Để khám phá kích thước và bố cục của vtbd0, chúng tôi sử dụng gpart
lệnh.
gpart show
Chúng ta sẽ thấy một dòng chỉ kích thước của ổ đĩa và trạng thái của nó. Trạng thái mà chúng ta sẽ thấy ở cuối dòng đầu tiên sau khi ổ đĩa bị thay đổi kích thước là "bị hỏng". Sau dòng trạng thái này, sẽ có ba dòng cho chúng ta biết phân vùng nào trên ổ đĩa, hệ thống tệp nào đang được sử dụng và kích thước của mỗi phân vùng. Phân vùng đầu tiên có thể sẽ là phân vùng "BIOS-boot", phân vùng thứ hai là khối lượng ZFS của chúng tôi và phân vùng thứ ba thường là không gian trao đổi. Đây là cách bố trí mà chúng tôi sẽ đảm nhận cho các mục đích của ví dụ này. Mỗi phân vùng được gán một số chỉ mục. Trong trường hợp này, các số chỉ mục là "1" cho phân vùng khởi động BIOS, "2" cho âm lượng ZFS và "3" cho trao đổi. Bố cục và số chỉ mục của bạn có thể khác nhau.
Điều tiếp theo chúng ta cần làm là khôi phục bố cục của ổ đĩa để nó không còn hiển thị là "bị hỏng". Chạy lệnh sau:
gpart recover vtbd0
Chúng ta sẽ thấy ngay một thông báo có nội dung "vtbd0 recovery". Kiểm tra kỹ trạng thái ổ đĩa bằng cách chạy gpart show
lại. Bước tiếp theo là xử lý phân vùng trao đổi. Nếu phân vùng trao đổi của chúng tôi xuất hiện sau nhóm ZFS của chúng tôi trên ổ đĩa, nó có thể cản trở khối lượng ZFS đang phát triển. Chúng tôi sẽ thực hiện trao đổi ngoại tuyến và xóa phân vùng trao đổi bằng cách chạy:
swapoff -a
gpart delete -i 3 vtbd0
Các lệnh này tắt không gian trao đổi và xóa phân vùng "3" (phân vùng trao đổi). Hãy chắc chắn chạy gpart show
trước khi chạy gpart delete
để đảm bảo rằng bạn đang xóa phân vùng chính xác.
Bước tiếp theo của chúng tôi là thay đổi kích thước phân vùng ZFS. Chúng ta có thể thực hiện một trong hai cách tiếp cận ở đây. Nếu chúng tôi quyết định rằng chúng tôi không cần dung lượng trao đổi, thì chúng tôi có thể chiếm toàn bộ dung lượng trống trên ổ đĩa và gán nó cho phân vùng ZFS của chúng tôi bằng cách chạy:
gpart resize -i 2 vtbd0
Ngoài ra, nếu chúng ta muốn tiếp tục sử dụng không gian hoán đổi, thì chúng ta có thể sửa đổi lệnh thay đổi kích thước một chút. Chúng ta hãy giả sử rằng phân vùng ZFS hiện tại là 10 GB và chúng tôi muốn thay đổi kích thước thành 20 GB. Chúng tôi sẽ thực hiện:
gpart resize -i 2 -s 20g vtbd0
Tham số "-s 20g" yêu cầu gpart thay đổi kích thước phân vùng thứ hai thành 20GB. Chúng tôi có thể xác nhận rằng hành động này đã hoàn thành bằng cách chạy gpart show
. Các gpart show
lệnh cũng sẽ cho chúng ta thấy bao nhiêu không gian có sẵn ở phần cuối của ổ đĩa cho một phân vùng swap mới.
Tại thời điểm này, việc kiểm tra kích thước của nhóm lưu trữ ZFS của chúng tôi vẫn sẽ hiển thị kích thước trước đó.
zpool list
Để báo cho hệ thống tệp mở rộng và chiếm toàn bộ phân vùng thứ hai của ổ đĩa của chúng tôi, hãy thực hiện như sau:
zpool online -e tank vtbd0p2
Lệnh trên thay đổi kích thước nhóm lưu trữ ZFS có tên là "tank" và chiếm toàn bộ phân vùng thứ hai của ổ cứng. "P2" ở cuối dòng cho biết chúng tôi đang làm việc với phân vùng thứ hai và, nếu cách bố trí ổ đĩa của bạn khác, số sau "p" sẽ cần khớp với chỉ số phân vùng ZFS. Hãy nhớ rằng, bạn có thể hiển thị chỉ mục phân vùng với gpart show
.
Tại thời điểm này, chúng tôi gần hoàn thành. Nếu bạn không cần không gian hoán đổi, thì thiết lập của bạn đã hoàn tất. Chạy zpool list
để xác nhận rằng kho lưu trữ là kích thước phù hợp, lớn hơn.
Nếu không, bạn đã để lại không gian ở cuối ổ đĩa cho một phân vùng trao đổi. Chúng ta có thể thêm lại không gian trao đổi bằng cách chạy một vài lệnh. Đầu tiên, chúng tôi tạo một không gian hoán đổi mới:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Lệnh này tạo phân vùng trao đổi kích thước 1GB. Phân vùng mới được thêm vào ổ cứng của chúng tôi và được cung cấp số chỉ mục "3". Bước tiếp theo của chúng tôi là cho phép không gian hoán đổi để hệ điều hành của chúng tôi có thể sử dụng phân vùng mới.
swapon /dev/vtbd0p3
Một lần nữa, "p3" ở cuối dòng cho biết phân vùng trao đổi của chúng tôi đã được gán cho chỉ mục "3". Nếu chúng ta sử dụng một chỉ mục khác nhau, thì số này sẽ được thay đổi để phản ánh số chỉ mục trao đổi trong đầu ra được tạo bởi gpart show
. Chúng tôi có thể xác nhận rằng không gian hoán đổi được kích hoạt và hoạt động bằng cách chạy lệnh:
swapctl -l -h
Điều này sẽ cho thấy rằng 1GB dung lượng trao đổi đang được sử dụng.
Cuối cùng, một lời cảnh báo. Xóa / thêm lại không gian hoán đổi thay đổi nhãn của phân vùng trao đổi. Điều này có nghĩa là mục trao đổi trong /etc/fstab
tệp sẽ không còn được coi là hợp lệ. Do đó, không gian hoán đổi sẽ không được kích hoạt sau khi hệ điều hành khởi động lại. Để tránh sự cố này, hãy mở /etc/fstab
tệp và tìm dòng gắn kết không gian hoán đổi. Đảm bảo phần đầu của dòng liệt kê phân vùng mà chúng ta vừa tạo /dev/vtbd0p3
, là thiết bị trao đổi.