So sánh xfs và ext4

ZFS có thể là định dạng quản lý dữ liệu cấp doanh nghiệp được biết đến nhiều nhất trong việc quản lý các thiết bị lưu trữ vật lý. Đây không phải là định dạng duy nhất trên thị trường. ZFS và EXT4 đang là những chuẩn cạnh tranh nhau để dành vị trí trên thị trường các thiết bị quản lý thiết bị lưu trữ dữ liệu toàn cầu.

Cả ZFS và ext4 đều có khả năng quản lý dung lượng dữ liệu lớn trên đám mây một cách an toàn nhưng 2 định dạng này lại không tương đồng về dung lượng, cách thức quản lý và khả năng sử dụng.

Giữa ZFS và EXT4, so với ext4 thì ZFS hỗ trợ các định dạng dữ liệu tiên tiến nhất và có thể quản lý dữ liệu lâu dài trong khi ext4 thì không thể.

ZFS là gì?

ZFS được Sun Microsystems giới thiệu lần đầu tiên vào năm 2005 như một hệ thống quản lý dữ liệu kết hợp giữa khả năng quản lý dung lượng cao và sự linh hoạt. Hoạt động trên nền tảng công nghệ RAID, ZFS cho phép người dùng tạo và quản lý dữ liệu theo sự phân cấp. Định dạng này được tích hợp các tính năng mức doanh nghiệp như snapshot và thuật toán checksum.

Ext4 là gì?

Linux đã tạo ra định dạng quản lý dữ liệu mở rộng đầu tiên [ext] vào đầu năm 1992. Đây là lần đầu tiên sử dụng hệ thống chuyển đổi tệp ảo [VFS], cho phép Linux hỗ trợ nhiều định dạng dữ liệu cùng một lúc trên cùng một hệ thống. Linux đã phát hành ba bản cập nhật kể từ – ext2, ext3 và ext4. Ngày nay, ext4 – có từ năm 2001 – là mặc định trên Hệ thống Linux.

ZFS và ext4: Lựa chọn nào cho bạn?

Trong khi ext4 là định dạng quản lý dữ liệu mặc định trên Linux, nhưng không hẳn đó là lựa chọn đúng đắn cho việc quản lý dữ liệu. Hãy để tâm đến các tính năng mà nó mang lại có phù hợp với nhu cầu của bạn hay không.

Nếu lựa chọn Ext4

Ext4 có khả năng tương thích ngược, nghĩa là bạn có thể gắn kết nó trên hệ thống ext3, ext2 hoặc ext1. Vì tất cả các sản phẩm này được tạo ra trước năm 2002, khả năng tương thích ngược sẽ không quan trọng đối với hầu hết người dùng. Ext4 cũng giảm phân mảnh tệp, cải thiện tuổi thọ bộ nhớ flash thông qua delayed allocation, và có thể quản lý khối lượng tệp lớn hơn so với người tiền nhiệm. Ngay từ đầu, nó đã sử dụng nhật ký, một hệ thống ghi nhật ký thay đổi, vào tệp để giảm thiểu việc mất mát dữ liệu.

Mặc dù các thành phần này của ext4 có sự cải tiến so với các thế hệ trước, chương trình vẫn bị hạn chế cả về năng lực và chất lượng kỹ thuật.

Bởi vì ext4 là một bản nâng cấp của công nghệ được phát triển vào đầu những năm 1990, nên nó có khả năng hạn chế để quản lý các dữ liệu hiện đại. Hệ thống nhật ký hữu ích của nó bây giờ trở thành một gánh nặng làm chậm quá trình xử lý khi quản lý dung lượng dữ liệu. Thêm vào đó, ext4 có thể hỗ trợ kích thước tệp không lớn hơn 18 terabyte, biến nó thành không gian lưu trữ khiêm tốn cho một công ty kỹ thuật số, điều khiển dữ liệu hiện đại.

Nếu lựa chọn ZFS

Ngược lại, ZFS cung cấp khả năng lưu trữ dữ liệu và siêu dữ liệu gần như không giới hạn. Nó có thể quản lý tới 1 tỷ terabyte dữ liệu. Để tổ chức dữ liệu đó, ZFS sử dụng một cấu trúc cây linh hoạt trong đó mỗi hệ thống mới là một tệp con của hệ thống trước đó. ZFS cho phép người dùng di chuyển các tệp này bất cứ nơi nào và thậm chí gắn chúng vào ZFS trên các điểm bên ngoài điểm chính. Người dùng có thể tách các tệp con khỏi các hệ thống cha, quản lý không gian đĩa theo thứ bậc và xem toàn bộ cây bằng một lệnh duy nhất.

Về cơ bản, ZFS cho phép các nhà quản lý dữ liệu tổ chức và kiểm soát lượng thông tin khổng lồ một cách dễ dàng. Với một lệnh, người dùng có thể định vị lại một cây con, sao lưu hoặc nhân bản một cây con hoặc chụp nhanh hệ thống tệp ZFS và tất cả các phần tử con của nó với nhau. Tính năng tự động gắn kết của ZFS có nghĩa là các tệp được gắn kết ngay khi chúng vào hệ thống mặc dù người dùng có thể ghi đè lệnh này. Hơn nữa, nó tự động theo dõi không gian tệp đã sử dụng, tăng tốc các hoạt động của hệ thống và cung cấp cho người dùng một bản cập nhật gần như tức thì về những gì mà xảy ra với dữ liệu được lưu trữ.

Kết luận

Người dùng lưu trữ lượng dữ liệu khổng lồ và những người thích hệ thống lưu trữ gắn mạng [NAS] cần một hệ thống định dạng dữ liệu cấp doanh nghiệp. Mặc dù ext4 có thể hoàn thành công việc này, nó vẫn là phiên bản được thiết kế lại của một hệ thống lỗi thời. Ext4 thuận tiện vì nó cài đặt mặc định trên Linux, nhưng nó thiếu cách tiếp cận cập nhật, thân thiện với người dùng của ZFS.

Bằng cách sử dụng ZFS, người dùng có thể có được một hệ thống tự động tái tạo dữ liệu sau khi phát hiện ra lỗi, kết hợp liền mạch một số thiết bị phương tiện vật lý thành một khối hợp lý, có khả năng chụp nhanh [snapshot] và mirror và có thể nhanh chóng nén dữ liệu. Khi xem xét ZFS so với ext4, người dùng chọn ZFS để tận hưởng hệ thống lưu trữ dung lượng lớn, thân thiện với người dùng mà không cần một kỹ thuật viên CNTT để nắm trong tay.

Cungdocsach.vn

Vì XFS được MongoDb đề xuất từ ​​liên kết sau: //docs.mongodb.com/manual/administration/production-notes/

MongoDB trên Linux

Hệ thống tệp và hạt nhân

Khi chạy MongoDB trong phiên bản sản xuất trên Linux, bạn nên sử dụng phiên bản hạt nhân Linux 2.6.36 trở lên, với hệ thống tệp XFS hoặc EXT4. Nếu có thể, hãy sử dụng XFS vì nó thường hoạt động tốt hơn với MongoDB.

Với công cụ lưu trữ WiredTiger, nên sử dụng XFS để tránh các vấn đề về hiệu suất có thể xảy ra khi sử dụng EXT4 với WiredTiger.

Với công cụ lưu trữ MMAPv1, MongoDB sẽ phân bổ trước các tệp cơ sở dữ liệu của nó trước khi sử dụng chúng và thường tạo các tệp lớn. Do đó, bạn nên sử dụng hệ thống tệp XFS hoặc EXT4. Nếu có thể, hãy sử dụng XFS vì nó thường hoạt động tốt hơn với MongoDB.

Và từ liên kết Ubuntu: //askubuntu.com/questions/690360/help-me-choose-the-best-filesystem-for-my-pc

Hệ thống tệp Ext4 được khuyến nghị cho tất cả các hệ điều hành Linux vì có khả năng tương thích ngược với các hệ điều hành trước đó, bạn có thể gắn kết Ext2 và Ext3 làm hệ thống tệp Ext4 Ext4

reduces file fragmentation employs delayed allocation which helps with flash memory life as well as fragmentation. Good choice for SSDs and HDD

XFS

Good for a media file server because of constant throughput for large files. Most distributions require separate /boot partition because XFS and GRUB can be unpredictable Performance with small files is not as good.

Vì vậy, cái nào tốt hơn để sử dụng cho mongodb trên ubuntu 16.04.

AWS là một nền tảng đám mây cực kỳ phổ biến và đáng tin cậy để quản lý việc triển khai MongoDB, nhưng câu hỏi về XFS vs EXT4 khiến nhiều nhà phát triển băn khoăn rằng hệ thống tệp Linux nào sẽ mang lại cho họ hiệu suất tốt nhất cho các ứng dụng của họ.  Hướng dẫn chính thức của MongoDB về việc triển khai vào sản xuất khuyến nghị sử dụng hệ thống tệp XFS trên Linux, đặc biệt khi triển khai công cụ lưu trữ WiredTiger . Tuy nhiên, đề xuất không cho chúng ta biết lý do tại sao chúng ta nên mong đợi hiệu suất tăng hoặc loại hiệu suất mà chúng ta sẽ trải nghiệm. Chúng tôi quyết định đi sâu vào vấn đề bằng cách điều tra định lượng hiệu suất MongoDB trên XFS để bạn có thể so sánh xem EXT4 có phải là lựa chọn tốt hơn cho các phiên bản AWS EC2 của bạn hay không.

Hệ thống tệp XFS

XFS là một hệ thống tệp nhật ký 64 bit có khả năng mở rộng cao, hiệu suất cao được phát triển tại SGI vào năm 1993 và được chuyển sang Linux vào năm 2002. Nó hỗ trợ I / O song song cao và kích thước hệ thống tệp lên đến 9 Exabyte và chỉ ghi nhật ký là siêu dữ liệu hệ thống tệp, không phải dữ liệu người dùng. Một số tính năng nâng cao hiệu suất chính của XFS là:

  • Truy cập song song thông qua các nhóm phân bổ  đảm bảo nhiều luồng có thể thực hiện I / O đồng thời trên cùng một ổ đĩa.
  • Phân bổ dựa trên phạm vi rộng giúp giảm phân mảnh, kích thước siêu dữ liệu và cải thiện hiệu suất I / O bằng cách cho phép các hoạt động I / O ít hơn và lớn hơn.
  • Phân bổ trì hoãn cải thiện hiệu suất và cấu trúc dữ liệu. Phân mảnh được giảm thiểu bằng cách kết hợp ghi và phân bổ phạm vi thành nhiều phần lớn và các tệp được ghi ngẫu nhiên [chẳng hạn như những tệp được ánh xạ bộ nhớ] có thể được cấp phát liên tục

Có nhiều tính năng XFS khác để khám phá và bạn có thể tìm hiểu thêm trên trang web của XFS và Hướng dẫn sử dụng XFS.

Như bạn có thể đã tìm hiểu trong các  bài viết trước của chúng tôi , chúng tôi đã sử dụng YCSB để đánh giá hiệu suất MongoDB , bao gồm so sánh chi tiết về hiệu suất MongoDB được MMAP hỗ trợ trên các nhà cung cấp đám mây khác nhau. Chúng tôi quyết định sử dụng cùng một khối lượng công việc của YCSB mà chúng tôi đã sử dụng trước đó: Khối lượng công việc A [Cập nhật nặng: 50% lần đọc + 50% cập nhật]. Giai đoạn chèn của khối lượng công việc đo lường hiệu suất của 100% khối lượng công việc ghi, trong khi giai đoạn tải sẽ đo lường hiệu suất so với khối lượng công việc thực tế [50/50% đọc / cập nhật].

Các thử nghiệm của chúng tôi được chạy trên trình điều khiển MongoDB đồng bộ và bản phân phối Linux là Amazon Linux [4.4.44-39.55.amzn1.x86_64]. Chúng tôi đã chọn MongoDB phiên bản 3.2.10 chạy WiredTiger cho các thử nghiệm của mình vì WT là nơi mong đợi mức tăng tốt hơn và đã chạy thử nghiệm trên 2 giàn phần cứng khác nhau:

  • Đĩa tốc độ cao : ví dụ AWS EC2 c3.large trong đó MongoDB đang sử dụng đĩa SSD trong cấu hình RAID 0  để lưu trữ [ánh xạ tới kích thước cụm ScaleGrid HighPerfLarge ].
  • Đĩa tốc độ trung bình : AWS EC2 m3.medium instance trong đó MongoDB đang sử dụng EBS [Elastic Block Store] đĩa được cung cấp IOPS được đặt ở 300 IOPS [ánh xạ tới kích thước cụm ScaleGrid Trung bình ].

Lưu ý: Bất kỳ loại kiểm tra hiệu suất nào trong môi trường ảo hóa đều nên được thực hiện với một chút muối. Mục đích của chúng tôi ở đây không phải là đánh giá các con số hiệu suất trên các môi trường này, mà là cung cấp một số phép đo định lượng về sự khác biệt hiệu suất giữa EXT4 và XFS trong cùng một môi trường ảo hóa.

Đĩa SSD tốc độ cao

Chúng tôi đã chạy thử nghiệm sau trên thiết bị hiệu suất cao của mình:

  1. Đã chèn 6 triệu bản ghi ở các lần tải máy chủ khác nhau [bằng cách thay đổi số luồng ứng dụng khách YCSB].
  2. Chạy khối lượng công việc với số lượng hoạt động là 10 triệu bản ghi ở các tải máy chủ khác nhau.

Kết quả hiệu suất đĩa SSD

Đặc điểm thông lượng / độ trễ để chèn bản ghi 6M trên cấu hình hiệu suất cao:

Đặc điểm thông lượng / độ trễ cho các hoạt động ghi / cập nhật 10M trên cấu hình hiệu suất cao:

Quan sát đĩa SSD

  • XFS nhanh chóng một cách ngoạn mục trong cả giai đoạn chèn và thực thi khối lượng công việc. Với số lượng luồng thấp hơn, nó nhanh hơn 50% so với EXT4. Khi tải tăng lên, cả hai hệ thống tệp đều bị giới hạn bởi thông lượng của phần cứng bên dưới, nhưng XFS vẫn duy trì vị trí dẫn đầu.
  • Độ trễ cho cả XFS và EXT4 đều có thể so sánh được trong cả hai lần chạy. Lưu ý rằng tất cả các số đều tính bằng giây nhỏ.

Đĩa IOPS được cung cấp bởi EBS chậm hơn [300 IOPS]

Thử nghiệm sau được thực hiện trên giàn hiệu suất cỡ trung bình của chúng tôi:

  1. Đã chèn 3 triệu bản ghi ở các lần tải máy chủ khác nhau [bằng cách thay đổi số lượng chuỗi ứng dụng khách YCSB].
  2. Chạy khối lượng công việc với số lượng hoạt động là 5 triệu bản ghi ở các tải máy chủ khác nhau.

Với kinh nghiệm của chúng tôi về cấu hình cao cấp, chúng tôi hy vọng XFS cũng sẽ có một vị trí dẫn đầu trong lĩnh vực này.

Kết quả hiệu suất đĩa IOPS

Đặc điểm thông lượng / độ trễ để chèn bản ghi 3M trên cấu hình trung bình:

Đặc điểm thông lượng / độ trễ cho các hoạt động ghi / cập nhật 5M trên cấu hình trung bình:

Quan sát đĩa IOPS

  • XFS có thể so sánh được, mặc dù hơi kém hơn EXT4 về cấu hình có kích thước trung bình. Có vẻ như ở mức tài nguyên hệ thống này, việc tối ưu hóa hiệu suất của XFS không thực sự tạo ra sự khác biệt. Đây là một quan sát quan trọng nếu bạn đang xem xét triển khai XFS trên các phiên bản nhỏ hơn với hy vọng hiệu suất được cải thiện.

XFS so với EXT4 trên AWS EC2

Về mặt hiệu suất, XFS thực sự là một hệ số nhân lực khi kết hợp với các đĩa tốc độ cao mà nó có thể tận dụng thực sự. Đối với các hệ thống cấp thấp đến trung cấp, nó dường như không thể làm được gì nhiều để cải thiện hiệu suất của bạn.

Video liên quan

Chủ Đề