Gần đây, một máy chủ SSD mới đã trực tuyến. Giá thành của SSD quá cao nên ổ cứng SSD trực tuyến không thể trực tiếp có dung lượng vài TB như HDD mà chỉ có thể mở rộng dần dần ổ cứng theo nhu cầu kinh doanh. của bài viết này ra đời: Linux Tự động mở rộng dung lượng ổ cứng trong khi vẫn giữ nguyên dữ liệu gốc.
Theo nghĩa truyền thống, việc mở rộng đĩa cứng VPS sử dụng phương pháp gắn kết, tức là chia lại một đĩa cứng mới vào một phân vùng khác, sau đó gắn phân vùng đó vào một thư mục nhất định của đĩa cứng gốc. Cách tiếp cận này đơn giản và thuận tiện nếu nó chỉ được sử dụng để mở rộng lưu trữ, nhưng nó không đủ cho các dịch vụ lưu trữ có nhiều nhu cầu.
Mở rộng động của đĩa cứng là tăng hoặc giảm dung lượng trống của đĩa cứng trong khi vẫn giữ nguyên dữ liệu gốc, nhằm đáp ứng nhu cầu xây dựng trang web hàng ngày của chúng ta. Bài viết này sẽ giới thiệu cách Linux LVM quản lý dung lượng ổ đĩa. LVM là một cơ chế quản lý các phân vùng ổ đĩa trong môi trường Linux.
Linux LVM là một lớp logic được xây dựng trên đĩa cứng và phân vùng cũng như trong hệ thống tệp, có thể cải thiện tính linh hoạt của việc quản lý phân vùng đĩa. Về vấn đề quản lý dung lượng ổ đĩa Linux, chúng ta cũng có thể giải quyết vấn đề không đủ dung lượng bằng cách dọn dẹp, gắn ổ đĩa đám mây, chia sẻ, v.v. Dưới đây là:
- Giải pháp cho không gian đĩa hệ thống Linux đầy-Lỗi Không còn chỗ trống trên thiết bị
- VPS mount đĩa mạng trong và ngoài nước đạt công cụ mở rộng miễn phí: Rclone, COS-Fuse và OSSFS
- Ba cách để chia sẻ thư mục thư mục trong Linux - Gắn từ xa NFS, lưu trữ chia sẻ GlusterFS và thư mục chia sẻ samba
1. Lệnh Resize2fs trực tiếp mở rộng dung lượng.
Ví dụ sử dụng lệnh:
resize2fs -f /dev/vda1 #针对的是ext2、ext3、ext4文件系统 #参数说明 -d:打开调试特性; -p:打印已完成的百分比进度条; -f:强制执行调整大小操作,覆盖掉安全检查操作; -F:开始执行调整大小前,刷新文件系统设备的缓冲区。
Nếu phân vùng Linux của bạn sử dụng LVM (LVM được sử dụng bởi SolusVM VPS), thì bạn có thể trực tiếp sử dụng lệnh thay đổi kích thước2fs để mở rộng đĩa gốc. Tình huống này thường xảy ra khi dung lượng của đĩa cứng được kiểm tra bằng lệnh df -h
nhỏ hơn dung lượng của phân vùng đĩa cứng được kiểm tra bằng lệnh fdisk -l
, như được hiển thị dưới:
Sau khi thực hiện lệnh resize2fs
để mở rộng dung lượng, hãy kiểm tra lại và thấy dung lượng của phân vùng ổ cứng đã tăng lên.
2. Tạo một phân vùng mới và mount nó để mở rộng dung lượng ổ cứng.
Nếu nhà cung cấp dịch vụ lưu trữ của bạn không phân vùng tất cả các đĩa cứng khi phân bổ chúng ban đầu hoặc chia lại kích thước đĩa cứng (đây là trường hợp SolusVM VPS nâng cấp đĩa cứng), thì bạn sẽ thấy rằng bạn có thể sử dụng Lệnh df -h
để xem đĩa cứng. Dung lượng bằng với dung lượng của phân vùng đĩa cứng được xem bằng lệnh fdisk –l
, nhưng nhỏ hơn tổng dung lượng của fdisk, như hiển thị dưới đây:
Tại thời điểm này, chúng ta có thể tạo một phân vùng mới và gắn nó vào đĩa cứng để mở rộng dung lượng. Thực hiện lệnh: fdisk /dev/vda
(điều chỉnh đường dẫn ổ cứng theo tình hình thực tế), nhập phân vùng fdisk
và nhập n (phân vùng mới) → p (chính phân vùng) → 1.2.3 ( Số phân vùng) → Enter → p (xem phân vùng) → w (lưu).
Phân vùng mới tạo không ở định dạng LVM. Chúng ta cần nhập lại lệnh fdisk
, sau đó nhập: t (chuyển đổi định dạng) → số phân vùng 1.2.3 → 8e (LVM) → p (xem phân vùng). ) → w ( lưu). Như được hiển thị bên dưới:
Sử dụng phương pháp trên, chúng tôi đã tạo một phân vùng sda3 mới trên đĩa cứng bổ sung 3GB và đặt nó ở định dạng LVM. Khởi động lại máy chủ VPS để có hiệu lực hoặc thực hiện lệnh (lệnh này có thể không được hỗ trợ trong CentOS 6): partprobe
. (Nếu lời nhắc không tồn tại, hãy thực hiện cài đặt trước: yum -y install parted
)
Sử dụng lệnh sau để tạo toàn bộ phân vùng dưới dạng khối logic LV: (Để giới thiệu chi tiết về PV, VG và LV, vui lòng tham khảo phần thứ ba)
pvcreate /dev/vda3 //创建物理卷 vgcreate qyfoutt /dev/vda3 //创建逻辑卷组 vgchange -ay qyfoutt //激活逻辑卷组 vgdisplay qyfoutt | grep "Total PE" //查看该卷组所有的PE lvcreate -l 17919 -n qimm qyfoutt //创建逻辑卷 mkfs.ext4 /dev/qyfoutt/qimm //格式化逻辑卷
Ở đây tôi tạo một nhóm khối lượng hợp lý có tên qyfoutt, với tổng cộng 70GB có sẵn để phân bổ. Sau đó, một ổ đĩa logic có tên qimm đã được tạo và 70GB được gán cho nó. Nó được tự động gắn khi khởi động và phân vùng /dev/qyfoutt/qimm
mới được thêm vào sẽ được gắn vào một thư mục nhất định. Định dạng như sau:
vim /etc/fstab /dev/sdb1(磁盘分区) /data1(挂载目录-需要提前创建好) ext4(文件格式,也可写ext3)defaults 0 0 /dev/qyfoutt/qimm /ttfou ext4 defaults 0 0
Gắn kết tất cả các thư mục: mount -a
(lưu ý rằng nó bằng tiếng Anh -) Quá trình gắn kết thành công.
3. Ổ cứng mới được mở rộng trực tiếp sang ổ cứng ban đầu.
Nếu bạn mua ổ cứng thứ hai, không cần phải gắn nó vào lúc này. Bạn có thể trực tiếp thêm dung lượng trống của ổ cứng mới vào ổ cứng ban đầu. Như trong hình bên dưới thì đã có sẵn một ổ cứng 256GB (chia làm 3 phân vùng, trong đó sda3 có định dạng lvm). Theo phương pháp tạo phân vùng mới ở trên, hãy chia toàn bộ đĩa cứng thành một phân vùng: sdb1.
3.1 Tạo khối vật lý PV mới
Các lệnh cơ bản:
pvcreate /dev/sda3 #新建PV #有两个以上的分区还可以一起新建PV pvcreate /dev/sda3 /dev/sdb1 -f:强制创建物理卷,不需要用户确认; -u:指定设备的UUID; -y:所有的问题都回答“yes”; -Z:是否利用前4个扇区。 pvs #查看pv基本信息 pvdisplay #查看pv详细信息
Như được hiển thị bên dưới, ổ đĩa vật lý PV được tạo cho sdb1.
3.2 Mở rộng nhóm âm lượng VG
Theo phương pháp trên, chúng tôi đã tạo PV, VG và LV và gắn LV vào một thư mục nhất định. Bây giờ hãy thêm PV sẽ được xây dựng vào VG ban đầu. Ví dụ lệnh cơ bản:
vgcreate wzfou /dev/sda3 /dev/sdb1 #将两个PV卷加入到卷组wzfou -l:卷组上允许创建的最大逻辑卷数; -p:卷组中允许添加的最大物理卷数; -s:卷组上的物理卷的PE大小。 vgs或者vgdisplay来查看创建的卷组 vgextend qyfoutt /dev/sdb1 #扩容VG组
Như hiển thị bên dưới, tôi đã thêm sdb1 và sda3 vào cùng một nhóm VG.
s có thể chỉ định kích thước PE. Ví dụ: trong quá trình cài đặt chính và được kiểm soát SolusVM, chúng tôi yêu cầu PE phải là 128 MB. Ở đây chúng tôi có thể chỉ định kích thước PE thông qua lệnh này. Nếu sau này có PV mới, bạn có thể tiếp tục thêm vào VG:
3.3 Mở rộng khối lượng logic LV
Chúng tôi đã mở rộng dung lượng âm lượng VG ở trên. Bây giờ chúng tôi chỉ cần mở rộng LV ban đầu lên toàn bộ dung lượng âm lượng VG.
vgdisplay qyfoutt | grep "Total PE" #查看所有PE lvresize -l 1279 /dev/qyfoutt/qimm #将VG组所有空间都给LV,1279是最后一个PE resize2fs /dev/qyfoutt/qimm #重设LV大小
Ví dụ: Nhóm VG có dung lượng 5GB, còn LV thuộc VG chỉ có 3GB.
Bây giờ toàn bộ dung lượng 2GB còn lại của nhóm VG được trao cho LV để hoàn thành việc mở rộng LV.
4. Tóm tắt
Nếu bạn muốn mở rộng ổ cứng, bạn nên sử dụng LVM để quản lý việc mở rộng ổ cứng. Nếu sau này bạn muốn bổ sung thêm ổ cứng thì đó là một vấn đề rất đơn giản đối với LVM. Trình tự mở rộng cơ bản là: Thêm PV → Mở rộng nhóm VG → Mở rộng LV
.
Có hai cách để thêm PV: một là thêm một đĩa cứng mới rồi phân vùng nó, hai là tạo một phân vùng mới trên đĩa cứng gốc. Cho dù sử dụng phương pháp nào để mở rộng đĩa cứng, trước tiên bạn phải tạo âm lượng vật lý PV, sau đó tạo nhóm âm lượng VG và cuối cùng tạo âm lượng logic LV.