Ưu điểm của hệ thống tập tin không phân vùng


39

Tôi đã gặp một vài thứ trước đây mà tôi chưa từng thấy trước đây: Một hệ thống tập tin (ext3 tôi tin) được cài đặt vào một thiết bị lưu trữ không có phân vùng. Về bản chất /dev/sdb toàn bộ hệ thống tập tin. Tôi biết nhiều hệ thống tập tin có thể được mở rộng vào không gian trống, vì vậy, việc này cho phép mở rộng mà không phải giao dịch với LVM hoặc một số trình quản lý âm lượng khác, nhưng có bất kỳ lợi thế nào khác để thiết lập lưu trữ theo cách này không?

Trường hợp cụ thể mà tôi thấy là khối lượng dữ liệu phù du cho một máy chủ crunching số, khối lượng khởi động và gốc là các phân vùng truyền thống trên một thiết bị lưu trữ hoàn toàn khác. -


Oracle VM cũng làm điều này - cho "lưu trữ cục bộ".
Nils

3
Tôi đã bỏ lỡ câu hỏi này và bắt đầu một câu hỏi mới bao gồm cùng một nền tảng: unix.stackexchange.com/q/52389/4801 . Câu hỏi đó hiện đã được đóng lại, nhưng một số câu trả lời cũng có thể hữu ích cho độc giả của Q này và có thể được hợp nhất tại đây.
dubiousjim

1
... và một số khác tại unix.stackexchange.com/questions/206141/ trên
derobert

Hoạt động nhưng dẫn đến các vấn đề sẽ lãng phí thời gian như được hiển thị ở đây - access.redhat.com/documentation/en-us/red_hat_enterprise_linux/ lỗi .
slm

Câu trả lời:


24

Pro: bạn không lãng phí một khu vực đĩa trên bảng phân vùng. (Vâng.)

Pro: đĩa có thể được sử dụng trong một hệ điều hành không hỗ trợ phân vùng kiểu PC. (Giống như bạn sẽ sử dụng một cái.)

Con: điều này là bất thường và có thể nhầm lẫn các đồng phạm. (Xem?)

Con: nếu bạn cài đặt một hệ điều hành khác, nó có thể nghĩ rằng đĩa chứa rác và dễ dàng vô tình ghi đè lên nó bằng cách chọn sai đĩa - trong khi các hệ điều hành thường để lại các phân vùng mà chúng không hiểu.

Không liên quan: việc mở rộng hệ thống tập tin không dễ dàng hơn nếu nó trực tiếp trên đĩa so với khi nó nằm trong một phân vùng, hoặc ngược lại. (Trở thành LVM sẽ làm cho nó dễ dàng hơn.)

Kết luận: nó hoạt động, nhưng nó không phải là một ý tưởng tốt.


2
Nhầm lẫn, ahoy! Đồng hồ nội bộ của tôi hiện đang nghiêng về "nỗ lực tối ưu hóa sai lầm".
sysadmin1138

6
một con lừa khác: làm cho việc phân chia phân vùng thành hai khó khăn hơn.
Kim

3
Đã xem qua Q & A siêu người dùng này có một số ví dụ hay bằng cách sử dụng hexdumpodthể hiện bằng những thuật ngữ rất cụ thể những gì đang diễn ra với một thiết lập /dev/sdaso với .. /dev/sda1
slm

4
Việc mở rộng âm lượng trên toàn bộ đĩa sẽ đơn giản hơn một chút vì trước tiên bạn không phải mở rộng phân vùng.
psusi

2
Trong một môi trường phi thương mại, việc cài đặt một HĐH khác có thể có liên quan - nhưng ai là người đa năng trong một env thương mại? Tôi băn khoăn rằng đây là câu trả lời kinh điển. Không có gì sai với nó, ngoại trừ đó là ý kiến. Tôi đang trên hàng rào về việc sử dụng đĩa không phân vùng, nhưng một số lý do chính đáng được đưa ra dưới đây.
Graham Nicholls

18

Không chắc chắn về cách áp dụng này cho Linux nhưng với ZFS riêng, một lý do được khuyến nghị là tạo các nhóm trên toàn bộ đĩa và không phải phân vùng trong trường hợp trước đây có thể bật bộ đệm ghi đĩa.

Một số lý do khác cũng được đề cập ở đây:

http: //www.solarisi INTERNals.com/wiki/index.php/ZFS_Best_Practices_Guide#Storage_Pools

Kết luận: nó hoạt động và có thể là một ý tưởng tốt tùy thuộc vào hệ thống tập tin.


Tốt để biết. Trong trường hợp cụ thể này, nó đã ở trong đám mây! vì vậy lưu trữ được trừu tượng hóa khá nhiều vào thời điểm thiết lập hệ thống.
sysadmin1138

1
Điều gì trên trái đất mà bộ đệm ghi đĩa phải làm với việc một bảng phân vùng có được sử dụng hay không?
psusi

3
Bộ đệm ghi không thể được kích hoạt ở cấp phân vùng. Khi được kích hoạt, nó ảnh hưởng đến toàn bộ đĩa. Nếu một hệ thống tệp đang sử dụng toàn bộ đĩa, nó sẽ "sở hữu" đĩa đó để nó có thể bật và tắt bộ đệm đó mà không có bất kỳ rủi ro tài sản thế chấp nào. Mặt khác, làm điều đó có thể ảnh hưởng đến một người tiêu dùng đĩa khác cần bộ đệm đó bị vô hiệu hóa vì lý do riêng của nó.
jlliagre

4
Chắc chắn, nhưng việc hệ điều hành bật bộ nhớ cache một cách mù quáng mà không biết hệ thống tập tin hoặc yêu cầu của người tiêu dùng thiết bị thô không phải là một cách tiếp cận đáng tin cậy. Có những ứng dụng như cơ sở dữ liệu cần đảm bảo một giao dịch đã cam kết nằm trên đĩa chứ không chỉ trong bộ nhớ.
jlliagre

1
@psusi Cho dù fsync sẽ xóa bộ đệm đĩa hay không phụ thuộc vào hệ thống tệp.
jlliagre

16

Tôi thấy lợi ích thực sự khi điều này được thực hiện trong một môi trường ảo. Vì VMDK của chúng tôi được lưu trữ trên NAS của chúng tôi, chúng tôi có thể phát triển chúng một cách linh hoạt.

Nếu chúng ta đang sử dụng các phân vùng, chúng ta cần sử dụng LVM (và chi phí liên kết với nó) và xâu chuỗi các phân vùng lại với nhau, hoặc chúng ta cần gỡ bỏ máy chủ (hoặc hệ thống tệp nếu không sử dụng) để sử dụng thứ gì đó như gparted.

Tuy nhiên, nếu bạn sử dụng toàn bộ đĩa thay vì phân vùng, bạn có thể buộc quét lại trên các đĩa SCSI của mình và sử dụng resize2fs để phát triển hệ thống tệp khi trực tuyến (và đang sử dụng!).


Điểm tốt! Với các đĩa ảo (như bạn có thể tạo, xóa và thay đổi kích thước chúng khi cần) dường như là một lớp vô dụng.
pabouk

11

Việc đặt một hệ thống tập tin trên một thiết bị đĩa mà không tạo bất kỳ phân vùng nào là không phổ biến.

Ưu điểm:

  • khi bạn muốn sử dụng toàn bộ không gian, thì bạn không phải lãng phí thời gian với một số công cụ phân vùng
  • bạn không phải lo lắng về sự không tương thích của định dạng phân vùng 'tiêu chuẩn' (btw, định dạng phân vùng nào là tiêu chuẩn, DOS, BSD?), ví dụ: định dạng phân vùng DOS chỉ cho phép phân vùng tối đa 2 TB khi sử dụng Các lĩnh vực logic 512 byte!
  • bạn không phải lo lắng về các vấn đề căn chỉnh do phân vùng gây ra trên các ổ đĩa với (hiện tại) kích thước khu vực bất thường (ví dụ 4 k) - chắc chắn, các bản phân phối hiện tại nên gửi các công cụ phân vùng thực hiện căn chỉnh chính xác với các kích thước khu vực khác nhau

Có thể thay đổi kích thước một hệ thống tập tin trên một thiết bị thô không phải là một lý do tốt. Không gian bạn lưu theo cách đó, bạn không thể sử dụng cho những thứ khác. Do đó, bạn chỉ có thể trực tiếp tạo hệ thống tập tin trên toàn bộ thiết bị.


2

Một câu trả lời chưa được liệt kê là, nếu bạn không tạo phân vùng, bạn không phải đợi Kernel phát hiện ra nó chỉ có thể sau khi khởi động lại.

Một trường hợp sử dụng có thể là một khối EBS EC2 mà bạn thêm vào nút và muốn khởi tạo trong lần khởi động đầu tiên.

Nếu quá trình khởi tạo của bạn tạo một phân vùng, bạn có nguy cơ phải khởi động lại cho Kernel để xem phân vùng mới được tạo. Bạn thường thấy một thông báo như:

Lỗi: Lỗi thông báo cho kernel về sửa đổi phân vùng / dev / xvde1 - Thiết bị hoặc tài nguyên bận. Điều này có nghĩa là Linux sẽ không biết về bất kỳ thay đổi nào bạn đã thực hiện đối với / dev / xvde1 cho đến khi bạn khởi động lại - vì vậy bạn không nên gắn kết hoặc sử dụng nó theo bất kỳ cách nào trước khi khởi động lại.

Trong trường hợp này, quá trình khởi tạo của bạn sẽ phải thực hiện khởi động lại và sau đó tiếp tục thêm một hệ thống tệp vào phân vùng mới được tạo.

Nếu bạn biết bạn sẽ chỉ cần một phân vùng duy nhất, bạn cũng có thể bỏ qua nó do đó không có nguy cơ yêu cầu khởi động lại.

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.