Hướng dẫn mở rộng ổ đĩa trên Ubuntu Server sử dụng LVM
Trong môi trường quản trị hệ thống, đặc biệt với các server Ubuntu, việc thiếu dung lượng ổ cứng là vấn đề phổ biến. Việc mở rộng ổ đĩa trên Ubuntu bằng cách thêm ổ đĩa mới vào hệ thống Ubuntu là giải pháp hiệu quả để đảm bảo hiệu suất và khả năng mở rộng của server. Tuy nhiên, quá trình này đòi hỏi sự cẩn thận để tránh mất dữ liệu hoặc làm gián đoạn hoạt động hệ thống. Một lỗi nhỏ trong phân vùng có thể khiến server không khởi động được.
Bài viết này cung cấp hướng dẫn chi tiết, chuẩn kỹ thuật để thêm ổ đĩa vào Ubuntu Server sử dụng Logical Volume Manager (LVM) trên các nền tảng ảo hóa như Proxmox, VMware, hoặc VirtualBox. Chúng tôi sẽ trình bày từng bước từ việc thêm ổ đĩa mới, cấu hình phân vùng, đến mở rộng dung lượng root, kèm theo các lưu ý bảo mật và tối ưu hóa. Bài viết cũng bao gồm ý kiến cá nhân và các góp ý cải tiến dựa trên kinh nghiệm DevOps.
Tổng quan về mở rộng ổ đĩa trên Ubuntu với LVM
Logical Volume Manager (LVM) là công cụ quản lý lưu trữ linh hoạt, cho phép mở rộng dung lượng mà không cần định dạng lại ổ đĩa. Khi thêm ổ đĩa mới (ví dụ, từ 50GB hiện tại lên 60GB bằng cách thêm ổ 10GB), bạn cần:
- Thêm ổ đĩa vật lý thông qua phần mềm ảo hóa.
- Tạo phân vùng và tích hợp vào Volume Group (VG) hiện có.
- Mở rộng Logical Volume (LV) và hệ thống tệp để sử dụng dung lượng mới.
Quá trình này sẽ được thực hiện trên máy ảo Ubuntu, nhưng các bước tương tự áp dụng cho server vật lý hoặc các nền tảng ảo hóa khác.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo:
- Bạn có quyền root hoặc sudo trên server Ubuntu.
- Đã cài đặt LVM2 (sudo apt-get install lvm2 -y nếu chưa có).
- Phần mềm ảo hóa (Proxmox, VMware, VirtualBox, hoặc tương tự) đã được cấu hình.
- Sao lưu toàn bộ dữ liệu quan trọng để tránh rủi ro mất dữ liệu.
- Có kiến thức cơ bản về lệnh Linux và quản lý phân vùng.
Quy trình thêm ổ đĩa vào Ubuntu Server
Dưới đây là các bước chi tiết để thêm ổ đĩa 10GB vào server Ubuntu 50GB, sử dụng LVM để mở rộng phân vùng root.
1. Thêm ổ đĩa mới thông qua phần mềm ảo hóa
Tùy thuộc vào nền tảng ảo hóa bạn sử dụng, thực hiện các bước sau để thêm ổ đĩa mới.
1.1. Thêm ổ đĩa từ Proxmox
- Truy cập giao diện Proxmox, chọn máy ảo cần mở rộng dung lượng.
- Vào tab Hardware → Add → Hard Disk.
- Chỉ định dung lượng (10GB) và lưu.
- Kết quả: Ổ đĩa mới xuất hiện trong cấu hình máy ảo.
- Tham khảo: Proxmox Documentation.

1.2. Thêm ổ đĩa từ VMware
- Mở VMware, chọn máy ảo → Edit virtual machine settings.
- Nhấn Add → Hard Disk → Chỉ định dung lượng 10GB.
- Lưu và kiểm tra ổ đĩa mới trong cấu hình.
- Tham khảo: VMware Documentation.

1.3. Thêm ổ đĩa từ VirtualBox
- Mở VirtualBox, chọn máy ảo → Settings → Storage.
- Trong Controller, nhấn Add Hard Disk → Chỉ định dung lượng 10GB.
- Lưu và xác nhận ổ đĩa mới.
- Tham khảo: VirtualBox Documentation.

Lưu ý: Sau khi thêm ổ đĩa, khởi động lại máy ảo để hệ thống nhận diện ổ đĩa mới:
sudo reboot
2. Kiểm tra ổ đĩa hiện tại
Đăng nhập vào server Ubuntu qua SSH hoặc console và kiểm tra trạng thái ổ đĩa:
2.1. Xem thông tin phân vùng
df -h
- Lệnh này hiển thị dung lượng sử dụng trên các phân vùng:
- Filesystem: Tên thiết bị hoặc phân vùng.
- Size: Tổng dung lượng.
- Used/Avail: Dung lượng đã dùng/còn trống.
- Use%: Tỷ lệ sử dụng.
- Mounted on: Điểm gắn kết (ví dụ, / cho root).
Ví dụ đầu ra:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 47G 10G 35G 23% /
/dev/sda2 2.0G 200M 1.8G 10% /boot
- Phân vùng root (/dev/mapper/ubuntu–vg-ubuntu–lv) có 47GB, phù hợp với ổ đĩa 50GB ban đầu (3GB được dùng cho /boot và các phân vùng khác).
2.2. Kiểm tra ổ đĩa và phân vùng
sudo fdisk -l
- Lệnh này liệt kê tất cả ổ đĩa và phân vùng:
- /dev/sda: Ổ đĩa chính 50GB, bao gồm:
- /dev/sda1: BIOS boot (1MB).
- /dev/sda2: Phân vùng hệ thống (2GB, thường là /boot).
- /dev/sda3: Phân vùng LVM (48GB, chứa root).
- /dev/sdb: Ổ đĩa mới 10GB, chưa được phân vùng.
- /dev/mapper/ubuntu–vg-ubuntu–lv: Logical Volume của root.
- /dev/sda: Ổ đĩa chính 50GB, bao gồm:
3. Cấu hình ổ đĩa mới với LVM
3.1. Tạo phân vùng mới trên ổ đĩa
sudo fdisk /dev/sdb
Thực hiện các bước trong fdisk:
- Nhấn n để tạo phân vùng mới.
- Chọn p (primary) làm loại phân vùng.
- Chấp nhận giá trị mặc định cho Partition number (1), First sector (2048), và Last sector (toàn bộ dung lượng).
- Nhấn t để đặt loại phân vùng, chọn 8e (Linux LVM).
- Nhấn w để ghi bảng phân vùng và thoát.
3.2. Tạo Physical Volume (PV)
sudo pvcreate /dev/sdb1
Lệnh này khởi tạo /dev/sdb1 thành Physical Volume, sẵn sàng tích hợp vào LVM.
Nếu thiếu gói LVM2, cài đặt trước:
sudo apt-get install lvm2 -y
3.3. Mở rộng Volume Group (VG)
sudo vgextend ubuntu-vg /dev/sdb1
Lệnh này thêm /dev/sdb1 vào Volume Group ubuntu-vg, tăng dung lượng khả dụng của VG.
Kiểm tra VG:
sudo vgdisplay
Đầu ra sẽ hiển thị ubuntu-vg với dung lượng mới (khoảng 10GB bổ sung).
3.4. Mở rộng Logical Volume (LV)
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
- Lệnh này mở rộng Logical Volume root (/dev/mapper/ubuntu–vg-ubuntu–lv) để sử dụng toàn bộ dung lượng trống trong VG.
3.5. Điều chỉnh hệ thống tệp
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
- Lệnh này mở rộng hệ thống tệp (thường là ext4) để phù hợp với kích thước mới của LV.
- Kết quả: Dung lượng root tăng từ 47GB lên khoảng 57GB.
3.6. Kiểm tra lại dung lượng
df -h
Xác nhận phân vùng root (/) đã tăng dung lượng:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 57G 10G 45G 19% /
Ý kiến cá nhân và lưu ý triển khai
1. Lưu ý về bảo mật
Sao lưu dữ liệu: Trước khi thao tác trên ổ đĩa hoặc LVM, sao lưu toàn bộ dữ liệu (bao gồm volume LVM và tệp cấu hình) để tránh mất mát:
sudo tar -cvf /backup/root-backup.tar /
Kiểm tra trước khi ghi: Trong fdisk, luôn kiểm tra kỹ trước khi nhấn w để ghi bảng phân vùng. Một sai lầm có thể xóa dữ liệu hiện có.
Quyền truy cập: Chỉ người dùng root hoặc sudo nên thực hiện các lệnh này để tránh lỗi quyền.
2. Tối ưu hóa hiệu suất
Chọn loại hệ thống tệp: Nếu bạn cần hiệu suất cao hơn, cân nhắc dùng xfs thay vì ext4 cho các phân vùng lớn. Để chuyển đổi, cần định dạng lại LV:
sudo mkfs.xfs /dev/mapper/ubuntu--vg-ubuntu--lv
Tăng IOPS: Trên các nền tảng ảo hóa, cấu hình ổ đĩa mới với SSD hoặc chế độ I/O hiệu suất cao (nếu có).
3. Góp ý cải tiến
Tự động hóa với Ansible: Để triển khai trên nhiều server, sử dụng Ansible để tự động hóa các bước như pvcreate, vgextend, và lvextend. Ví dụ playbook:
- name: Extend LVM volume
hosts: ubuntu_servers
tasks:
- name: Create physical volume
command: pvcreate /dev/sdb1
- name: Extend volume group
command: vgextend ubuntu-vg /dev/sdb1
- name: Extend logical volume
command: lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
- name: Resize filesystem
command: resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Giám sát dung lượng: Tích hợp công cụ như Prometheus hoặc Nagios để theo dõi dung lượng ổ đĩa, gửi cảnh báo khi gần đầy.
Snapshot LVM: Trước khi mở rộng, tạo snapshot để khôi phục nếu có lỗi:
sudo lvcreate -L 5G -s -n root-snapshot /dev/ubuntu-vg/ubuntu-lv
4. Mẹo thực tế
Kiểm tra định kỳ: Chạy df -h và lsblk định kỳ để theo dõi trạng thái ổ đĩa và phân vùng.
Tối ưu dung lượng: Nếu không cần toàn bộ 10GB cho root, bạn có thể tạo Logical Volume riêng cho dữ liệu:
sudo lvcreate -L 5G -n data ubuntu-vg
sudo mkfs.ext4 /dev/ubuntu-vg/data
sudo mkdir /data
sudo mount /dev/ubuntu-vg/data /data
Tài liệu tham khảo: Xem thêm tài liệu chính thức của LVM và hướng dẫn từ Proxmox, VMware, hoặc VirtualBox để xử lý các trường hợp đặc biệt.
Kết luận
Mở rộng ổ đĩa trên Ubuntu Server bằng LVM là một quy trình quan trọng để đáp ứng nhu cầu lưu Indicators trữ ngày càng tăng. Với các bước được trình bày, từ thêm ổ đĩa qua phần mềm ảo hóa đến cấu hình LVM, bạn có thể tăng dung lượng root một cách an toàn và hiệu quả. Bằng cách áp dụng các lưu ý bảo mật, tối ưu hóa hiệu suất, và tự động hóa, bạn sẽ xây dựng một hệ thống đáng tin cậy và dễ quản lý.
Hãy thử triển khai quy trình này trên server của bạn và chia sẻ trải nghiệm! Nếu bạn cần hỗ trợ thêm về LVM, ảo hóa, hãy để lại câu hỏi trong phần bình luận.