102.1 Bài 1
Chứng chỉ: |
LPIC-1 |
---|---|
Phiên bản: |
5.0 |
Chủ đề: |
102 Cài đặt Linux và Quản lý Gói |
Mục tiêu: |
102.1 Thiết kế Bố cục Ổ đĩa cứng |
Bài: |
1 trên 1 |
Giới thiệu
Để đạt được mục tiêu của bài học này, chúng ta cần hiểu về mối quan hệ giữa ổ đĩa cứng (disk), phân vùng (partion), hệ thống tệp (filesystem) và ổ phân vùng (volume).
Hãy coi đĩa (hoặc thiết bị lưu trữ vì các thiết bị hiện đại hoàn toàn không chứa bất kỳ một “đĩa” nào) như là một “vùng chứa vật lý” dành cho dữ liệu của bạn.
Trước khi một đĩa có thể được máy tính sử dụng, nó sẽ cần được phân vùng. Phân vùng là một tập hợp con logic của ổ đĩa vật lý, giống như một “hàng rào” logic. Phân vùng là một phương thức để "ngăn cách" các thông tin được lưu trữ trên đĩa, chẳng hạn như ngăn cách dữ liệu hệ điều hành khỏi dữ liệu người dùng.
Mỗi đĩa cần ít nhất một phân vùng, nhưng nó cũng có thể có nhiều phân vùng nếu cần và thông tin về chúng sẽ được lưu trữ trong bảng phân vùng. Bảng này bao gồm thông tin về các khu vực đầu tiên và cuối cùng của phân vùng, loại của nó cũng như các chi tiết khác về từng phân vùng.
Bên trong mỗi phân vùng sẽ có một hệ thống tệp. Hệ thống tệp mô tả cách thông tin thực sự được lưu trữ trên đĩa. Thông tin này bao gồm cách tổ chức các thư mục, mối quan hệ giữa chúng là gì, dữ liệu cho mỗi tệp nằm ở đâu, v.v.
Các phân vùng không thể được mở rộng trên nhiều đĩa. Nhưng bằng cách sử dụng Trình Quản lý Ổ phân vùng Logic (LVM), nhiều phân vùng có thể được kết hợp (thậm chí là kết hợp giữa các đĩa với nhau) để tạo thành một ổ đĩa logic duy nhất.
Các ổ phân vùng logic sẽ trừu tượng hóa các hạn chế của thiết bị vật lý và cho phép ta làm việc với “vùng” dung lượng đĩa có thể được kết hợp hoặc phân phối theo cách linh hoạt hơn nhiều so với các phân vùng truyền thống. LVM rất hữu ích trong các trường hợp cần thêm nhiều dung lượng vào một phân vùng mà không cần di chuyển dữ liệu sang một thiết bị lớn hơn.
Trong mục tiêu này, chúng ta sẽ tìm hiểu cách thiết kế sơ đồ phân vùng đĩa cho hệ thống Linux, phân bổ hệ thống tệp và hoán đổi dung lượng cho các phân vùng hoặc đĩa riêng biệt khi cần.
Cách tạo và quản lý các phân vùng và hệ thống tệp sẽ được thảo luận trong các bài học tới. Trong mục tiêu này, chúng ta sẽ thảo luận tổng quan về LVM (phần giải thích chi tiết sẽ nằm ngoài phạm vi của mục tiêu).
Điểm Gắn kết
Trước khi một hệ thống tệp có thể được truy cập trên Linux, nó cần phải được gắn kết. Việc gắn hệ thống tệp vào một điểm cụ thể trong cây thư mục của hệ thống được gọi là điểm gắn kết.
Khi được gắn, nội dung của hệ thống tệp sẽ có sẵn trong điểm gắn kết. Ví dụ: hãy tưởng tượng bạn có một phân vùng chứa dữ liệu cá nhân của người dùng (thư mục chính của họ) có chứa các thư mục /john
, /jack
và /carol
. Khi được gắn trong /home
, nội dung của các thư mục đó sẽ có sẵn trong /home/john
, /home/jack
và /home/carol
.
Điểm gắn kết phải tồn tại trước khi gắn hệ thống tệp. Ta không thể gắn phân vùng trong /mnt/userdata
nếu thư mục này không tồn tại. Tuy nhiên, nếu thư mục này tồn tại và chứa các tệp, các tệp đó sẽ không khả dụng cho đến khi ta ngắt kết nối hệ thống tệp. Nếu liệt kê nội dung của thư mục, ta sẽ thấy các đơn vị được gắn kết là các tệp được lưu trữ trên hệ thống tệp chứ không phải nội dung gốc của thư mục.
Hệ thống tệp có thể được gắn ở bất cứ nơi nào ta muốn. Tuy nhiên, có một số thông lệ hữu ích nên được tuân theo để giúp việc quản trị hệ thống trở nên dễ dàng hơn.
Theo truyền thống, /mnt
là thư mục mà tất cả các thiết bị ngoại vi sẽ được gắn vào và một số điểm neo được cấu hình sẵn cho các thiết bị phổ biến như đĩa CD-ROM (/mnt/cdrom
) và đĩa mềm (/mnt /floppy
) sẽ tồn tại bên dưới nó.
Thư mục này đã được thay thế bởi /media
- hiện là điểm gắn kết mặc định cho bất kỳ phương tiện nào mà người dùng có thể tháo rời (ví dụ: ổ đĩa ngoại vi, ổ flash USB, đầu đọc thẻ nhớ, đĩa quang, v.v.) được kết nối với hệ thống.
Trên hầu hết các bản phân phối Linux và môi trường máy tính để bàn hiện đại, các thiết bị di động sẽ được tự động gắn vào /media/USER/LABEL
khi được kết nối với hệ thống, trong đó, USER
là tên người dùng và LABEL
là nhãn thiết bị. Ví dụ: ổ flash USB có nhãn FlashDrive
được kết nối bởi người dùng john
sẽ được gắn trong /media/john/FlashDrive/
. Cách để xử lý vấn đề này sẽ khác nhau tùy thuộc vào môi trường máy tính để bàn.
Từ đó, chúng ta có thể hiểu rằng bất cứ khi nào cần gắn hệ thống tệp thủ công, ta nên gắn hệ thống đó trong /mnt
. Các lệnh cụ thể để kiểm soát việc gắn kết và ngắt kết nối các hệ thống tệp trong Linux sẽ được thảo luận trong một bài học khác.
Giữ mọi thứ tách biệt
Có một số thư mục trong Linux mà chúng ta nên cân nhắc để giữ trên các phân vùng riêng biệt. Có nhiều lý do cho điều này, ví dụ như bằng cách giữ các tệp liên quan đến trình tải khởi động (được lưu trữ trên /boot
) trên phân vùng khởi động, ta sẽ đảm bảo được hệ thống của mình vẫn có thể khởi động trong trường hợp hệ thống tệp gốc gặp sự cố.
Việc giữ các thư mục cá nhân của người dùng (trong /home
) trên một phân vùng riêng sẽ giúp việc cài đặt lại hệ thống trở nên dễ dàng hơn mà không có nguy cơ vô tình chạm tới dữ liệu người dùng. Việc lưu giữ dữ liệu liên quan đến một trang web hoặc máy chủ cơ sở dữ liệu (thường dưới /var
) trên một phân vùng riêng (hoặc thậm chí là một đĩa riêng) sẽ giúp việc quản trị hệ thống trở nên dễ dàng hơn nếu ta cần thêm nhiều dung lượng đĩa hơn cho các trường hợp sử dụng đó.
Thậm chí có thể có những lý do liên quan đến hiệu suất khiến chúng ta phải cân nhắc việc giữ một số thư mục trên các phân vùng riêng biệt. Ta có thể muốn giữ hệ thống tệp gốc (/
) trên ổ SSD tốc độ cao và các thư mục lớn hơn như /home
và /var
trên các ổ đĩa cứng chậm hơn, cung cấp nhiều dung lượng hơn với mức tiêu hao thấp.
Phân vùng Khởi động (/boot
)
Phân vùng khởi động có chứa các tệp được trình tải khởi động sử dụng để tải hệ điều hành. Trên các hệ thống Linux, trình tải khởi động thường là GRUB2 hoặc là GRUB Legacy trên các hệ thống cũ hơn. Phân vùng này thường được gắn trong /boot
và các tệp của nó sẽ được lưu trữ trong /boot/grub
.
Về mặt kỹ thuật, hệ thông không cần tới phân vùng khởi động vì trong hầu hết các trường hợp, GRUB có thể gắn phân vùng gốc (/
) và tải các tệp từ một thư mục /boot
riêng biệt.
Tuy nhiên, có thể hệ thống sẽ cần một phân vùng khởi động riêng để đảm bảo an toàn (đảm bảo hệ thống sẽ khởi động ngay cả trong trường hợp hệ thống tệp gốc gặp sự cố) hoặc nếu người dùng muốn sử dụng một hệ thống tệp mà trình tải khởi động không thể hiểu được trong phân vùng gốc, hoặc nếu nó sử dụng một phương pháp mã hóa hoặc nén không được hỗ trợ.
Phân vùng khởi động thường là phân vùng đầu tiên trên đĩa. Điều này là do BIOS PC ban đầu của IBM xử lý các đĩa bằng cách sử dụng CHS, tức xilanh (cylinders), đầu (heads) và ngành (sectors), với tối đa 1024 xi lanh, 256 đầu và 63 ngành, dẫn đến kích thước đĩa tối đa là 528 MB (504 MB trong MS-DOS). Điều này có nghĩa là mọi thứ vượt qua mốc này sẽ không thể truy cập được trên các hệ thống cũ trừ khi một sơ đồ địa chỉ đĩa khác (như Định Địa chỉ Khối Logic - LBA) đã được sử dụng.
Vì vậy, để tương thích tối đa, phân vùng khởi động thường nằm ở đầu đĩa và kết thúc trước xi lanh 1024 (528 MB) để đảm bảo rằng dù thế nào đi chăng nữa, máy vẫn sẽ luôn tải được hạt nhân.
Vì phân vùng khởi động chỉ lưu trữ các tệp cần thiết cho trình tải khởi động (tức đĩa RAM ban đầu và hình ảnh hạt nhân) nên nó có thể có kích thước khá nhỏ theo tiêu chuẩn ngày nay. Một kích thước hợp lý là khoảng 300 MB.
Phân vùng hệ thống EFI (ESP)
Phân vùng hệ thống EFI (ESP) được sử dụng bởi các máy dựa trên Giao diện Phần Sụn Mở rộng Hợp nhất (UEFI) để lưu trữ các trình tải khởi động và hình ảnh hạt nhân cho các hệ điều hành được cài đặt.
Phân vùng này được định dạng trong hệ thống tệp dựa trên FAT. Trên đĩa được phân vùng bằng Bảng phân vùng GUID, nó có mã định danh duy nhất trên toàn cầu là C12A7328-F81F-11D2-BA4B-00A0C93EC93B
. Nếu đĩa được định dạng theo sơ đồ phân vùng MBR, ID phân vùng sẽ là 0xEF
.
Trên các máy chạy Microsoft Windows, phân vùng này thường là phân vùng đầu tiên trên đĩa (mặc dù điều này là không bắt buộc). ESP sẽ được hệ điều hành tạo (hoặc di dời tới) khi cài đặt và được gắn trong /boot/efi
trên hệ thống Linux.
Phân vùng /home
Mỗi người dùng trong hệ thống đều có một thư mục chính để lưu trữ các tệp và tùy chọn cá nhân, và hầu hết chúng đều nằm trong /home
. Thông thường, thư mục chính sẽ giống với tên người dùng; vì vậy, người dùng John sẽ có thư mục chính là /home/john
.
Tuy nhiên thì vẫn có những trường hợp ngoại lệ. Ví dụ: thư mục chính cho siêu người dùng là /root
và một số dịch vụ hệ thống sẽ có thể liên kết người dùng với các thư mục chính ở nơi khác.
Không có quy tắc nào để xác định kích thước của phân vùng cho thư mục /home
(phân vùng chính). Chúng ta phải tính đến số lượng người dùng trong hệ thống và cách nó sẽ được sử dụng. Chẳng hạn như một người dùng chỉ duyệt web và xử lý văn bản sẽ cần ít dung lượng hơn một người làm công việc chỉnh sửa video.
Dữ liệu Biến (/var
)
Thư mục này chứa “dữ liệu biến” hoặc các tệp và thư mục mà hệ thống phải có khả năng ghi vào trong quá trình hoạt động. Điều này bao gồm nhật ký hệ thống (trong /var/log
), tệp tạm thời (/var/tmp
) và dữ liệu ứng dụng được lưu trong bộ nhớ đệm (trong /var/cache
).
/var/www/html
cũng là thư mục mặc định cho các tệp dữ liệu cho Máy chủ Web Apache và /var/lib/mysql
là vị trí mặc định cho các tệp cơ sở dữ liệu cho máy chủ MySQL. Tuy nhiên, cả hai thư mục này đều có thể thay đổi được.
Một lý do chính đáng để đặt /var
vào một phân vùng riêng là tính ổn định của nó. Có nhiều ứng dụng và tiến trình ghi vào /var
và các thư mục con như /var/log
hoặc /var/tmp
. Một tiến trình hoạt động sai có thể ghi dữ liệu cho đến khi không còn dung lượng trống trên hệ thống tệp.
Nếu /var
nằm dưới /
, điều này có thể gây ra tình trạng loạn hạt nhân và hỏng hệ thống tệp, gây ra các tình huống khó khắc phục. Nhưng nếu /var
được giữ dưới một phân vùng riêng thì hệ thống tệp gốc sẽ không bị ảnh hưởng.
Giống như trong /home
, không có quy tắc chung nào để xác định kích thước của phân vùng cho /var
vì nó sẽ thay đổi theo cách hệ thống được sử dụng. Trong hệ thống home thì có thể sẽ chỉ mất vài gigabyte. Nhưng trên cơ sở dữ liệu hoặc máy chủ web thì có thể sẽ cần nhiều dung lượng hơn. Trong những trường hợp như vậy, sẽ rất hữu ích khi đặt /var
trên một phân vùng trên một đĩa khác với phân vùng gốc để tăng thêm một lớp bảo vệ chống lại lỗi đĩa vật lý.
Hoán đổi
Phân vùng hoán đổi được sử dụng để hoán đổi các trang bộ nhớ từ RAM sang đĩa khi cần. Phân vùng này cần phải thuộc một loại cụ thể và được thiết lập với tiện ích phù hợp có tên là mkswap
trước khi có thể sử dụng được.
Phân vùng hoán đổi không thể được gắn kết như các phân vùng khác, nghĩa là ta không thể truy cập và xem nội dung của nó như một thư mục bình trường.
Một hệ thống có thể có nhiều phân vùng hoán đổi (mặc dù điều này không phổ biến) và Linux cũng hỗ trợ sử dụng các tệp hoán đổi thay vì các phân vùng. Điều này có thể sẽ hữu ích trong việc tăng nhanh dung lượng hoán đổi khi cần.
Kích thước của phân vùng trao đổi là một vấn đề gây tranh cãi. Quy tắc cũ từ những ngày đầu của Linux (“gấp đôi dung lượng RAM”) có thể đã không còn được áp dụng nữa, tùy thuộc vào cách hệ thống đang được sử dụng và lượng RAM vật lý được cài đặt.
Trên tài liệu dành cho Red Hat Enterprise Linux 7, Red Hat khuyến nghị như sau:
Dung lượng RAM | Kích thước hoán đổi được đề xuất | Kích thước hoán đổi được đề xuất với Chế độ Ngủ đông |
---|---|---|
< 2 GB RAM |
Gấp đôi dung lượng RAM |
Gấp 3 lần dung lượng RAM |
RAM 2-8 GB |
Bằng dung lượng RAM |
Gấp đôi dung lượng RAM |
RAM 8-64 GB |
Ít nhất 4 GB |
Gấp 1,5 lần dung lượng RAM |
> 64 GB RAM |
Ít nhất 4 GB |
Không được khuyến khích |
Tất nhiên dung lượng hoán đổi có thể phụ thuộc vào khối lượng công việc. Nếu máy đang chạy một dịch vụ quan trọng (chẳng hạn như cơ sở dữ liệu, web hoặc máy chủ SAP), ta nên kiểm tra tài liệu về các dịch vụ này (hoặc về nhà cung cấp phần mềm) để biết dung lượng được khuyến nghị.
Note
|
Để biết thêm về cách tạo và kích hoạt phân vùng hoán đổi và tệp hoán đổi, hãy xem Mục tiêu 104.1 của LPIC-1. |
LVM
Chúng ta đã thảo luận về cách các đĩa được tổ chức thành một hoặc nhiều phân vùng với mỗi phân vùng chứa một hệ thống tệp mô tả cách các tệp và siêu dữ liệu liên quan được lưu trữ. Một trong những nhược điểm của việc phân vùng là người quản trị hệ thống phải quyết định trước cách thức phân phối dung lượng đĩa khả dụng trên thiết bị. Điều này có thể đưa ra một số thách thức sau này nếu một phân vùng yêu cầu nhiều dung lượng hơn dự kiến ban đầu. Tất nhiên, các phân vùng có thể được thay đổi kích thước, nhưng điều này có thể không thực hiện được trong một số trường hợp (ví dụ như không có dung lượng trống trên đĩa).
Trình Quản lý Ổ phân vùng Logic (LVM - Logical Volume Management) là một dạng ảo hóa lưu trữ cung cấp cho quản trị viên hệ thống một cách tiếp cận linh hoạt hơn để quản lý dung lượng đĩa so với phương thức phân vùng truyền thống. Mục tiêu của LVM là tạo thuận lợi cho việc quản lý nhu cầu lưu trữ của người dùng cuối. Đơn vị cơ bản của nó là Ổ phân vùng Vật lý (PV), tức là một thiết bị khối trên hệ thống (như phân vùng đĩa hoặc mảng RAID).
Các PV được nhóm thành các Nhóm Ổ đĩa (VG) sẽ trừu tượng hóa các thiết bị cơ bản và được xem như một thiết bị logic duy nhất với dung lượng lưu trữ kết hợp của các PV thành phần.
Mỗi ổ phân vùng trong một Nhóm Ổ phân vùng được chia nhỏ thành các phần có kích thước cố định được gọi là mức phạm vi (extents). Mức phạm vi trên PV được gọi là Mức phạm vi Vật lý (PE), trong khi mức phạm vi trên Ổ phân vùng Logic là Mức phạm vi Logic (LE). Nói chung, mỗi Mức phạm vi logic đều được ánh xạ tới Mức phạm vi vật lý, nhưng điều này có thể thay đổi nếu các tính năng như phản chiếu đĩa được sử dụng.
Các Nhóm Ổ đĩa có thể được chia nhỏ thành các Ổ đĩa Logic (LV) có chức năng hoạt động theo cách tương tự như các phân vùng nhưng linh hoạt hơn.
Kích thước của một Ổ phân vùng logic (như được chỉ định trong quá trình tạo) trên thực tế được xác định bằng kích thước của mức phạm vi vật lý (4 MB theo mặc định) nhân với số lượng mức phạm vi trên ổ phân vùng. Từ đó, ta có thể dễ dàng hiểu rằng để phát triển một đơn vị như Ổ phân vùng Logic, tất cả những gì quản trị viên hệ thống phải làm là thêm nhiều mức phạm vi hơn từ vùng có sẵn trong Nhóm Ổ phân vùng. Tương tự như vậy, các mức phạm vi cũng có thể được loại bỏ để thu nhỏ LV.
Sau khi một Ổ phân vùng Logic được tạo, hệ điều hành sẽ xem nó như một thiết bị khối thông thường. Một thiết bị sẽ được tạo trong /dev
và được đặt tên là /dev/VGNAME/LVNAME
, trong đó, VGNAME
là tên của Nhóm Ổ phân vùng và LVNAME
là tên của Ổ phân vùng Logic.
Các thiết bị này có thể được định dạng bằng hệ thống tệp mong muốn bằng cách sử dụng các tiện ích tiêu chuẩn (chẳng hạn như mkfs.ext4
) và được gắn kết bằng các phương pháp thông thường, có thể là theo cách thủ công bằng lệnh mount
hoặc tự động bằng cách thêm chúng vào tệp `/etc/fstab `.
Bài tập Hướng dẫn
-
Trên các hệ thống Linux, các tệp cho trình tải khởi động GRUB được lưu trữ ở đâu?
-
Phân vùng khởi động nên kết thúc ở đâu để đảm bảo rằng PC luôn có thể tải được hạt nhân?
-
Phân vùng EFI thường được gắn ở đâu?
-
Khi gắn thủ công một hệ thống tệp, nó thường được gắn vào thư mục nào?
Bài tập Mở rộng
-
Đơn vị nhỏ nhất bên trong một Nhóm Ổ đĩa là gì?
-
Kích thước của Ổ đĩa Logic được xác định như thế nào?
-
Trên một đĩa được định dạng bằng sơ đồ phân vùng MBR, ID của Phân vùng hệ thống EFI là gì?
-
Bên cạnh các phân vùng hoán đổi, làm thế nào để có thể nhanh chóng tăng dung lượng hoán đổi trên hệ thống Linux?
Tóm tắt
Trong bài học này, chúng ta đã tìm hiểu về phân vùng và thư mục nào thường được giữ trong các phân vùng riêng biệt và tại sao điều này được thực hiện. Ngoài ra, chúng ta đã thảo luận tổng quan về LVM (Trình Quản lý Ổ phân vùng Logic) và việc nó có thể cung cấp một cách linh hoạt hơn để phân bổ dữ liệu và dung lượng đĩa so với cách phân vùng truyền thống.
Các tệp, thuật ngữ và tiện ích sau đây đã được nhắc đến:
/
-
Hệ thống tệp gốc của Linux.
/var
-
Vị trí tiêu chuẩn cho “dữ liệu biến” - dữ liệu có thể thu nhỏ và phát triển theo thời gian.
/home
-
Thư mục mẹ tiêu chuẩn cho các thư mục chính của người dùng thông thường trên hệ thống.
/boot
-
Vị trí tiêu chuẩn cho các tệp trình tải khởi động, nhân Linux và đĩa RAM ban đầu.
- Phân vùng Hệ thống EFI (ESP)
-
Được sử dụng bởi các hệ thống đã triển khai UEFI để lưu trữ các tệp khởi động của hệ thống.
- Không gian hoán đổi
-
Được sử dụng để hoán đổi các trang bộ nhớ hạt nhân khi RAM được sử dụng nhiều.
- Điểm gắn kết
-
Vị trí thư mục nơi thiết bị (chẳng hạn như một ổ đĩa cứng) sẽ được gắn vào.
- Phân vùng
-
Sự phân chia trên một ổ đĩa cứng.
Đáp án Bài tập Hướng dẫn
-
Trên các hệ thống Linux, các tệp cho trình tải khởi động GRUB được lưu trữ ở đâu?
Trong
/boot/grub
. -
Phân vùng khởi động nên kết thúc ở đâu để đảm bảo rằng PC luôn có thể tải được hạt nhân?
Trước xi lanh 1024.
-
Phân vùng EFI thường được gắn ở đâu?
Trong
/boot/efi
. -
Khi gắn thủ công một hệ thống tệp, nó thường được gắn vào thư mục nào?
Trong
/mnt
. Tuy nhiên, điều này là không bắt buộc. Bạn có thể gắn kết một phân vùng trong bất kỳ thư mục nào mình muốn.
Đáp án Bài tập Mở rộng
-
Đơn vị nhỏ nhất bên trong một Nhóm Ổ phân vùng là gì?
Nhóm Ổ phân vùng được chia nhỏ thành các mức phạm vi.
-
Kích thước của một Ổ phân vùng Logic được xác định như thế nào?
Bằng kích thước của các mức phạm vi vật lý nhân với số lượng mức phạm vi trên ổ phân vùng.
-
Trên một đĩa được định dạng bằng sơ đồ phân vùng MBR, ID của Phân vùng hệ thống EFI là gì?
ID là
0xEF
. -
Bên cạnh các phân vùng hoán đổi, làm thế nào để có thể nhanh chóng tăng dung lượng hoán đổi trên hệ thống Linux?
Có thể sử dụng tệp hoán đổi.