Bạn sử dụng server cụ thể hơn là Ubuntu trên on-premise thì cũng sẽ gặp phải vấn đề thiếu dung lượng ổ cứng, vì vậy việc thêm ổ đĩa vào Ubuntu là điều cần thiết để đảm bảo sự hoạt động tốt của server, đây là một việc cần phải làm cẩn thận vì sẽ ảnh hưởng trực tiếp đến dữ liệu, cũng như hệ thống của chúng ta, chỉ cần phân vùng sai hoàn toàn server của bạn có thể không hoạt động, chúng ta sẽ bắt đầu ngay dưới đây.
Mình có server Ubuntu ban đầu với 50GB và có 10GB thêm ổ đĩa vào Ubuntu đó vậy là chúng ta sẽ có tổng 60GB, mình sẽ thực hiện trên server ubuntu ảo, bạn có thể làm trên VirtualBox, VMware, Proxmox,… ở đây mình ví dụ một số phầm mềm ảo hóa thôi nhé vì bản chất đều như nhau nếu bạn sử dụng các tool khác cũng như vậy chẳng qua là giao diện nó khác đi thôi.
Nội dung
Thêm ổ đĩa vào Ubuntu
Đầu tiên chúng ta phải thêm ổ đĩa vào Ubuntu từ phần mềm ảo hóa mình ví dụ một số phần mềm dưới đây
Thêm ổ đĩa vào Ubuntu từ Proxmox
Chọn vào Máy ảo muốn thêm dung lượng => Hardware => Add => Hard Disk thành công sẽ được thêm như dưới đây
Trang chính thức: Proxmox – Resources
Thêm ổ đĩa vào Ubuntu từ VMWare
Chọn vào máy ảo muốn thêm dung lượng => Edit => Add hard disk, thành công và được kết quả dưới đây
Trang chính thức: VMWare – Resources
Thêm ổ đĩa vào Ubuntu từ Virtualbox
Chọn File => Virtual Media Manager… thành công và được kết quả dưới đây
Trang chính thức: Virtualbox – Documentation
Sau khi thêm ổ đĩa vào Ubuntu từ phần mềm ảo hóa bạn hãy tiến hành khởi động lại máy ảo đó nhé.
Cấu hình thêm ổ đĩa vào Ubuntu
Sau khi bạn đã thêm thành công Disk từ tool vào trong server tuy nhiên Disk đó chưa được thêm vào ổ đĩa Ubuntu ban đầu nên chúng ta phải cấu hình tiếp theo
Tiến hành truy cập vào trong server thực hiện các bước dưới đây
$ df -h
hiển thị thông tin về việc sử dụng đĩa (disk usage) trên các phân vùng hệ thống
Trong trường hợp này, partition /dev/mapper/ubuntu--vg-ubuntu--lv
có kích thước là 47GB và được gắn kết làm root (/
), 3GB còn lại có thể được sử dụng cho các phân vùng khác hoặc các mục đích khác.
Các phân vùng như /boot
, /run
, và /dev/shm
không được tính vào kích thước tổng cộng của hệ thống tệp. Chúng là các phân vùng riêng biệt với kích thước nhỏ, được sử dụng cho mục đích cụ thể.
Vì vậy, dựa trên kết quả của lệnh df -h
bạn đã cung cấp, ổ cứng của server có kích thước là 50GB, nhưng trong đó có một phần đã được sử dụng cho các phân vùng hệ thống và không được hiển thị trong partition root (/
).
Khi chạy lệnh df -h
, các thông tin sau sẽ được hiển thị:
Filesystem
: Tên của các phân vùng hệ thống hoặc thiết bị lưu trữ.Size
: Kích thước tổng cộng của phân vùng hoặc thiết bị lưu trữ.Used
: Kích thước đã sử dụng.Avail
: Kích thước còn trống sẵn có.Use%
: Phần trăm sử dụng của phân vùng hoặc thiết bị lưu trữ.Mounted on
: Đường dẫn nơi phân vùng được gắn kết vào hệ thống tệp.
$ sudo fdisk -l
hiển thị thông tin về các ổ đĩa và phân vùng trên hệ thống
Lệnh trên chúng ta biết được những thông tin sau
- Disk /dev/loop0: Đây là một thiết bị loop, thường được sử dụng để gắn kết các tệp hệ thống tệp tin tạm thời. Kích thước của nó là 44.68 MiB.
- Disk /dev/loop1: Tương tự như /dev/loop0, đây cũng là một thiết bị loop với kích thước là 79.95 MiB.
- Disk /dev/loop2: Cũng là một thiết bị loop, nhưng có kích thước là 61.89 MiB.
- Disk /dev/sda: Đây là ổ đĩa vật lý, có kích thước là 50 GiB. Disk này có định dạng gpt (GUID Partition Table). Nó có ba phân vùng (chính là ổ đĩa đang sử dụng):
- /dev/sda1: Phân vùng BIOS boot với kích thước 1M.
- /dev/sda2: Phân vùng hệ thống Linux với kích thước 2G.
- /dev/sda3: Phân vùng hệ thống Linux với kích thước 48G.
- Disk /dev/sdb: Đây là một ổ đĩa vật lý khác, có kích thước là 10 GiB (chính là ổ đĩa chúng ta mới thêm vào).
- Disk /dev/mapper/ubuntu–vg-ubuntu–lv: Đây là một ổ đĩa logic hoặc một logical volume (LV) trên hệ thống LVM (Logical Volume Manager). Kích thước của nó là 48 GiB. Đây có thể là phân vùng root (
/
) của hệ thống Ubuntu
$ sudo fdisk /dev/sdb
sử dụng để thao tác với ổ đĩa /dev/sdb
và tạo mới bảng phân vùng. Dưới đây là phân tích từng bước
Trong đó thực hiện những tác vụ sau
- Command (m for help): chọn lệnh “n” để tạo một phân vùng mới.
- Partition type: có hai lựa chọn: “p” để tạo một phân vùng chính (primary) hoặc “e” để tạo một phân vùng mở rộng (extended) để chứa các phân vùng logic.
- Select (default p): chọn “p” để tạo một phân vùng chính.
- Partition number (1-4, default 1): nhập số phân vùng. Mặc định là 1.
- First sector (2048-20971519, default 2048): nhập sector bắt đầu của phân vùng. Mặc định là 2048.
- Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): nhập sector cuối của phân vùng hoặc kích thước của phân vùng. Mặc định là 20971519, tức là sử dụng toàn bộ không gian trống trên ổ đĩa.
- Created a new partition 1 of type ‘Linux’ and of size 10 GiB: một phân vùng mới đã được tạo ra. Nó là phân vùng số 1, có loại là ‘Linux’ và kích thước là 10 GiB.
- Command (m for help): chọn lệnh “w” để ghi bảng phân vùng mới vào ổ đĩa.
- The partition table has been altered: bảng phân vùng đã được thay đổi thành công.
- Calling ioctl() to re-read partition table: hệ thống gọi ioctl() để đọc lại bảng phân vùng, cập nhật thông tin mới.
- Syncing disks: các đĩa đang được đồng bộ hóa để đảm bảo rằng các thay đổi được ghi xuống ổ đĩa.
Sau khi quá trình này hoàn thành, chúng ta đã tạo thành công một phân vùng mới trên ổ đĩa /dev/sdb
với loại “Linux” và kích thước 10 GiB.
$ sudo pvcreate /dev/sdb1
tạo một physical volume (PV) trên phân vùng /dev/sdb1
, Sau khi tạo physical volume, chúng ta có thể sử dụng nó để tạo logical volume và thực hiện các thao tác khác như phân vùng, thu hồi, gộp nối và quản lý không gian lưu trữ linh hoạt trên hệ thống của mình. nếu lệnh này chưa chạy được thì bạn tải package về bằng lệnh sudo apt-get install lvm2 -y
$ sudo vgextend ubuntu-vg /dev/sdb1
thao tác sau sẽ được thực hiện:
- Lệnh sẽ kiểm tra xem PV
/dev/sdb1
có thể được sử dụng và phù hợp với VGubuntu-vg
hay không. Nếu PV hợp lệ, lệnh sẽ tiếp tục thực hiện. - Lệnh sẽ thêm PV
/dev/sdb1
vào VGubuntu-vg
. Sau đó, VGubuntu-vg
sẽ mở rộng để bao gồm không gian và dung lượng từ PV mới.
Việc mở rộng VG cho phép chúng ta sử dụng không gian từ PV mới được thêm vào trong VG đó. Sau khi mở rộng VG, chúng ta có thể tạo mới hoặc mở rộng các logical volume (LV) trên VG, cung cấp khả năng quản lý linh hoạt hơn về không gian lưu trữ trong hệ thống LVM.
$ sudo vgdisplay
xác minh các volume group có sẵn trên hệ thống thành công được kết quả thấy có vg-ubuntu
$ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
thao tác sau sẽ được thực hiện:
- Lệnh sẽ kiểm tra LV
/dev/mapper/ubuntu--vg-ubuntu--lv
và xác định không gian trống có sẵn trong VG của nó. - Lệnh sẽ mở rộng LV
/dev/mapper/ubuntu--vg-ubuntu--lv
bằng cách sử dụng toàn bộ không gian trống trong VG. Điều này có nghĩa là LV sẽ mở rộng để sử dụng tất cả không gian còn lại trong VG.
Sau khi thực hiện lệnh này, LV /dev/mapper/ubuntu--vg-ubuntu--lv
sẽ được mở rộng và sử dụng toàn bộ không gian trống trong VG. Điều này cho phép chúng ta tăng kích thước của LV và sử dụng thêm không gian lưu trữ trên hệ thống.
$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
thao tác sau sẽ được thực hiện:
- Lệnh sẽ kiểm tra hệ thống tệp tin trên LV
/dev/mapper/ubuntu--vg-ubuntu--lv
và xác định kích thước hiện tại của nó. - Lệnh sẽ điều chỉnh kích thước hệ thống tệp tin để phù hợp với kích thước mới của LV. Trong trường hợp này, hệ thống tệp tin sẽ được mở rộng để sử dụng kích thước mới của LV.
- Kết quả của lệnh sẽ hiển thị thông báo về kích thước mới của hệ thống tệp tin sau khi điều chỉnh. Trong trường hợp này, hệ thống tệp tin trên
/dev/mapper/ubuntu--vg-ubuntu--lv
có độ dài là 15202304 (4k) blocks.
Lệnh resize2fs
cho phép chúng ta điều chỉnh kích thước của hệ thống tệp tin để phù hợp với kích thước của LV và sử dụng tối ưu không gian lưu trữ trên hệ thống.
$ df -h
kiểm tra lại thông tin về việc sử dụng đĩa (disk usage) trên các phân vùng hệ thống
Vậy là chúng ta đã thêm ổ đĩa vào Ubuntu thành công rồi, một bài viết khá ngắn, tuy nhiên còn những cách khác và cũng yêu cầu bạn hiểu biết về system Linux, nếu bạn quan tâm tới DevOps có thể xem các bài viết tại đây nhé. Mình sẽ làm nhiều hướng dẫn hơn về các kỹ năng các tool khác để giúp bạn tối ưu được những tác vụ cũng như tiết kiệm những chi phí khi phát triển phần mềm. Thanks.
Mọi thắc mắc bạn có thể liên hệ:
Email: [email protected]