Khi bạn thay thế một ổ đĩa và khởi động lại, tên của các thiết bị (như /dev/sda
, /dev/sdb
, v.v.) có thể thay đổi tùy thuộc vào thứ tự mà hệ điều hành nhận biết các ổ đĩa. Điều này có thể gây rối và dẫn đến các vấn đề nếu bạn đang sử dụng tên thiết bị để mount ổ đĩa trong /etc/fstab
hoặc trong các script.
Tuy nhiên, nếu bạn sử dụng nhãn để mount ổ đĩa, thì không quan trọng tên thiết bị thay đổi như thế nào. Hệ điều hành sẽ tìm kiếm ổ đĩa có nhãn phù hợp và mount nó, bất kể nó hiện đang là /dev/sda
, /dev/sdb
hay bất kỳ tên thiết bị nào khác.
Gắn nhãn (labeling) cho một phân vùng hoặc thiết bị lưu trữ trong Linux có một số lợi ích:
- Dễ nhận biết: Nhãn cung cấp một cách dễ nhận biết và ý nghĩa cho phân vùng hoặc thiết bị lưu trữ, thay vì chỉ sử dụng tên thiết bị mặc định như
/dev/sda1
,/dev/sdb2
, v.v. - Độc lập với cấu trúc thiết bị: Khi bạn mount một phân vùng bằng nhãn, hệ thống không cần quan tâm phân vùng đó nằm trên thiết bị nào. Điều này hữu ích khi cấu trúc thiết bị thay đổi, ví dụ khi bạn thêm hoặc loại bỏ ổ đĩa.
- Tính nhất quán: Nhãn giữ nguyên không đổi ngay cả khi bạn di chuyển thiết bị lưu trữ sang máy tính khác. Điều này giúp duy trì tính nhất quán khi làm việc với các thiết bị lưu trữ di động.
Đoạn script bash dưới đây được sử dụng để chuẩn bị và mount một thiết bị lưu trữ cho hệ thống lưu trữ đối tượng OpenStack Swift.
#!/bin/bash
device_name=$1 && \
label=$2 && \
mkfs.xfs -L ${label} ${device_name} && \
mkdir -p /srv/node/${label} && \
chown -R swift:swift /srv/node/${label} && \
[[ -n $(grep "LABEL=${label}" /etc/fstab) ]] || echo "LABEL=${label} /srv/node/${label} xfs noatime,nodiratime,nobarrier,logbufs=8 0 2" >> /etc/fstab && \
mount –a
Nó thực hiện các công việc sau:
- Format thiết bị với hệ thống tệp tin XFS và gán nhãn cho nó.
- Tạo một thư mục mới và thay đổi quyền sở hữu cho người dùng và nhóm
swift
. - Thêm thiết bị vào
/etc/fstab
nếu nhãn chưa tồn tại, để thiết bị được mount tự động khi hệ thống khởi động. - Mount tất cả các hệ thống tệp tin được liệt kê trong
/etc/fstab
.