Linux - hạn ngạch cho mỗi thư mục?


21

Tôi có các tình huống sau:

Phân vùng đơn được gắn dưới dạng /, với nhiều không gian đĩa.

Có một loạt các thư mục (/ pg / tbs1, / pg / tbs2, / pg / tbs3, v.v.) và tôi muốn giới hạn tổng kích thước của các thư mục này.

Một tùy chọn là tạo một số tệp lớn, sau đó mkfs chúng và gắn kết vòng lặp, sau đó đặt hạn ngạch, nhưng điều này làm cho việc mở rộng có chút vấn đề.

Có cách nào khác để làm cho hạn ngạch hoạt động trên mỗi thư mục không?

linux  quota 

Gắn tệp qua loopback không thực sự có vấn đề mở rộng. Bạn chỉ cần mở rộng tệp bên dưới và sau đó sử dụng resize2fsđể phát triển hệ thống tệp. Tôi nghĩ rằng sử dụng LVM là một giải pháp tốt hơn, nhưng giải pháp bạn đề xuất không có những hạn chế mà bạn nghĩ nó làm.
larsks

cũng btrfs và zfs
hanshenrik

Câu trả lời:


17

Nếu bạn buộc phải sử dụng ext3, thì sử dụng LVM có lẽ là giải pháp tốt nhất của bạn. Tạo một hệ thống tập tin mới cho mỗi dự án. Điều đó sẽ trông giống như thế này:

# Create a 10g filesystem for "project1" in volume group "vg0"
lvcreate -L 10g -n project1 vg0

# Create an ext3 filesystem.
mke2fs -j /dev/vg0/project1

# Mount it (obviously you would want this in /etc/fstab)
mount /dev/vg0/project1 /projects/project1

Phát triển hệ thống tập tin dự án rất dễ dàng:

# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1

# Grow the filesystem.
resize2fs /dev/vg0/project1

6

Nếu bạn không dựa vào quyền của nhóm, bạn có thể sử dụng một nhóm UNIX khác nhau cho mỗi "thư mục hạn ngạch", sau đó đặt bit sgid trên mỗi thư mục (vì vậy các tệp và thư mục được tạo sẽ thuộc về nhóm của thư mục thay vì nhóm chính của người dùng người tạo) và sử dụng hạn ngạch nhóm.


5

Vâng. Nhìn vào hệ thống tập tin XFS và hạn ngạch dự án. Hệ thống tập tin khác không cung cấp tính năng này.


Thật không may, tôi không thể thay đổi fs cơ bản. Nhưng thật tốt khi biết rằng XFS có khả năng này.

5

Tôi thực sự đã muốn làm điều này trong một thời gian bởi vì tôi không muốn phải tạo người dùng hệ thống cho tất cả người dùng thư ảo của mình. Các hệ thống tập tin ZFS với hạn ngạch sẽ rất tuyệt và zfs-fuse tạo ra tiến bộ mỗi ngày, nhưng điều tôi muốn là một giải pháp rất nhẹ. Cuối cùng tôi quyết định viết một hệ thống tập tin FUSE mà tôi có thể gắn kết như một lớp trên một hệ thống tập tin khác (bất kỳ thư mục cơ sở nào cũng sẽ hoạt động thực sự). Nó có một tiện ích để quản lý hạn ngạch có thể được viết theo kịch bản một cách dễ dàng và vì các giá trị hạn ngạch chỉ được lưu dưới dạng xattrs trên các thư mục hoặc tệp, một điểm gắn có thể cung cấp hỗ trợ cho số lượng hạn ngạch tùy ý.

Tôi đã thử nghiệm nó trên một máy chủ thư trong một thời gian và gần đây đã quyết định rằng nó đã đến tuổi thiếu niên và sẵn sàng để phát hành vào tự nhiên. Nếu bạn tò mò, bạn có thể xem thử tại http://code.google.com.vn/p/fusequota/ . Tôi sẽ đánh giá rất cao bất kỳ thông tin phản hồi.



Chiếc gương Git không hoạt động với tôi. Không có lỗi, nhưng tôi có thể vượt quá hạn ngạch (trên ext4 với các tùy chọn gắn kết rw, relatime, data = order)
timdiels 28/03/2017

3

Hệ thống tập tin mới cho mỗi thư mục được chia sẻ là IMHO quá mức cần thiết. Chỉ cần tạo nhóm mới cho mỗi thư mục dùng chung, đặt nhóm chủ sở hữu của thư mục dùng chung vào nhóm này, đặt bit dính vào nhóm (để mọi tệp và thư mục mới có nhóm này là chủ sở hữu) và để cấp quyền cho các tệp và thư mục sử dụng danh sách acl. Sau đó đặt hạn ngạch cho các nhóm này.


1

Tôi không biết bất kỳ phương pháp nào để đặt dấu ngoặc kép cho mỗi thư mục.

Nhưng cùng với ý tưởng của bạn về việc tạo các hệ thống tệp với kích thước hạn chế. Đây có thể là một nơi mà lvm sẽ là một giải pháp tốt.

Bạn có thể sao lưu / cài đặt lại và sử dụng lvm , chỉ phân bổ dung lượng tối thiểu cần thiết cho khối lượng logic của bạn. Nó rất dễ dàng để mở rộng khối lượng logic lvm .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.