VPS

Nén và loại bỏ trùng lặp để tiết kiệm ổ

Thanh Nguyễn Đăng 9 phút đọc 1 khối lệnh

Nén và loại bỏ trùng lặp để tiết kiệm ổ
Mục lục bài viết
  1. Nén, thứ nên bật mặc định
  2. Loại bỏ trùng lặp và cái giá của nó
  3. Khi nào khử trùng lặp đáng dùng
  4. Đo trước khi bật
  5. Các cách tiết kiệm khác đáng làm trước
  6. Các cách tiết kiệm nên làm trước
  7. Đo trước khi bật loại bỏ trùng lặp
  8. Bật nén cho toàn bộ, không cần chia loại
  9. Câu hỏi thường gặp
  10. Bài viết liên quan

Trả lời nhanh: Nén nên bật mặc định cho hầu hết kho vì nó thường làm tăng tốc độ chứ không giảm, do đọc ít byte hơn từ đĩa. Loại bỏ trùng lặp thì ngược lại: ăn rất nhiều RAM, khó tắt sau khi bật, và chỉ đáng dùng cho kho sao lưu hoặc kho chứa nhiều máy ảo giống nhau.

Hai kỹ thuật này hay được nhắc chung nhưng có đặc tính rất khác nhau. Một cái gần như luôn nên bật, cái kia thì nên tránh trừ khi bạn biết chắc mình cần. Bài này phân định rõ và đưa ra con số thực tế theo từng loại dữ liệu.

Nén, thứ nên bật mặc định

Trực giác nói nén làm chậm vì tốn CPU. Với các thuật toán nén nhẹ hiện đại thì thường ngược lại.

Lý do là chênh lệch tốc độ. CPU nén và giải nén nhanh hơn nhiều lần so với tốc độ đọc ghi của ổ đĩa. Dữ liệu nén lại nghĩa là ít byte hơn phải đi qua ổ, và thời gian tiết kiệm được ở đó lớn hơn thời gian CPU bỏ ra.

Mức hiệu quả theo loại dữ liệu:

  • Văn bản, mã nguồn, tệp nhật ký: nén rất tốt, giảm đáng kể.
  • Cơ sở dữ liệu: nén khá tốt, và còn giúp giảm lượng đọc ghi.
  • Đĩa máy ảo: tùy nội dung bên trong, thường có lợi vì nhiều vùng trống và nhiều tệp hệ thống lặp lại.
  • Ảnh, video, tệp nén sẵn: gần như không giảm được gì.

Điểm hay: các hệ thống file hiện đại tự phát hiện khi nén không có lợi và lưu nguyên bản khối đó. Nghĩa là bật nén cho kho chứa ảnh cũng không gây hại, chỉ là không được lợi gì.

Về lựa chọn thuật toán, thuật toán nén nhẹ mặc định là lựa chọn đúng cho gần như mọi trường hợp. Các thuật toán nén mạnh hơn giảm dung lượng nhiều hơn nhưng chậm hơn đáng kể, chỉ hợp cho kho lưu trữ ít khi đọc.

Loại bỏ trùng lặp và cái giá của nó

Ý tưởng: nếu cùng một khối dữ liệu xuất hiện nhiều lần, chỉ lưu một bản và các chỗ khác trỏ tới nó.

Nghe rất hấp dẫn, nhưng cái giá rất thật.

RAM. Hệ thống phải giữ một bảng tra ánh xạ từ mã băm của mỗi khối tới vị trí của nó. Bảng này lớn và phải nằm trong bộ nhớ để tra nhanh. Ước lượng thô là vài gigabyte RAM cho mỗi terabyte dữ liệu, cộng thêm phần RAM mà hệ thống file vốn đã cần.

Khó tắt. Sau khi bật, dữ liệu đã ghi vẫn ở dạng đã khử trùng lặp và bảng tra vẫn phải giữ. Tắt tính năng chỉ ngăn dữ liệu mới, không gỡ được phần cũ trừ khi chép toàn bộ đi rồi chép về.

Hiệu năng. Mỗi thao tác ghi phải tính mã băm và tra bảng. Nếu bảng tra không vừa RAM và phải đọc từ đĩa, hiệu năng sụp đổ theo cách rất khó chẩn đoán.

Khi nào khử trùng lặp đáng dùng

Ba trường hợp có tỉ lệ trùng lặp cao đủ để bù cái giá.

  • Kho chứa nhiều máy ảo giống nhau. Hai mươi máy ảo cùng dựng từ một mẫu thì phần lớn nội dung đĩa của chúng giống hệt nhau.
  • Kho sao lưu giữ nhiều phiên bản. Bản hôm nay và bản hôm qua chỉ khác nhau một phần nhỏ.
  • Môi trường máy tính ảo cho nhiều người dùng, nơi mỗi người có một máy ảo gần như giống nhau.

Ngoài ba trường hợp trên, tỉ lệ trùng lặp thường quá thấp để bù chi phí RAM.

Một điểm rất quan trọng: nếu bạn dùng phần mềm sao lưu chuyên dụng, nó gần như chắc chắn đã khử trùng lặp ở tầng của nó rồi. Bật thêm ở tầng lưu trữ chỉ tốn RAM mà không được thêm gì, vì dữ liệu đến tầng đó đã không còn trùng lặp.

Đo trước khi bật

Đừng bật dựa trên hy vọng. Có công cụ ước lượng tỉ lệ khử trùng lặp trên dữ liệu thật của bạn mà không cần bật tính năng.

Cách đọc kết quả:

  • Tỉ lệ thấp, gần bằng một: không đáng bật, dữ liệu của bạn ít trùng lặp.
  • Tỉ lệ trung bình: cân nhắc, so lượng dung lượng tiết kiệm với chi phí RAM cần thêm.
  • Tỉ lệ cao: đáng bật, thường gặp ở kho nhiều máy ảo giống nhau.

Song song đó, hãy tính lượng RAM cần và kiểm máy chủ có đủ không. Nếu phải mua thêm RAM, hãy so giá RAM với giá ổ đĩa mà bạn tiết kiệm được. Nhiều trường hợp mua thêm ổ rẻ hơn mua thêm RAM.

Các cách tiết kiệm khác đáng làm trước

Trước khi nghĩ tới khử trùng lặp, bốn việc này thường cho kết quả tốt hơn với ít rủi ro hơn.

  1. Bật nén. Gần như luôn có lợi và không có rủi ro.
  2. Dọn dữ liệu không dùng. Rất nhiều doanh nghiệp có hàng terabyte tệp trùng lặp do người dùng tự chép, và tệp của các dự án đã đóng từ lâu.
  3. Phân tầng lưu trữ. Đẩy dữ liệu ít đọc xuống ổ rẻ hơn thường tiết kiệm nhiều hơn khử trùng lặp.
  4. Đặt hạn mức dung lượng theo phòng ban. Không có hạn mức thì dung lượng luôn được lấp đầy.

Với ảnh chụp, cũng nên rà lại: ảnh chụp bị quên là nguồn tiêu tốn dung lượng âm thầm rất phổ biến.

Các cách tiết kiệm nên làm trước

ViệcMức tiết kiệm điển hìnhCông sức
Xóa dữ liệu tạm và nhật ký cũThường bất ngờ lớnRất thấp
Xóa bản sao lưu quá hạn giữLớnThấp
Bật nén cho dữ liệu văn bản và mã nguồnĐáng kểThấp
Chuyển dữ liệu cũ xuống tầng lưu trữ rẻ hơnLớnTrung bình
Bật loại bỏ trùng lặpTùy loại dữ liệu, có khi rất ítCao, và tốn nhiều bộ nhớ

Bốn việc đầu nên làm hết trước khi nghĩ tới việc cuối. Rất nhiều trường hợp bốn việc đầu đã giải quyết xong vấn đề dung lượng mà không phải đụng tới kỹ thuật phức tạp nào.

Đo trước khi bật loại bỏ trùng lặp

TerminalĐo trước khi bật loại bỏ trùng lặpbash
# Ky thuat nay chi dang khi du lieu cua ban that su co nhieu ban trung.# Va cai gia phai tra la BO NHO, rat nhieu bo nho. # Du lieu trung nhieu:#  - Nhieu may ao cung mot he dieu hanh#  - Ban sao luu day du lap lai nhieu lan#  - Thu muc chua nhieu ban cua cung mot bo tai lieu # Du lieu gan nhu khong trung:#  - Anh, video, tep da nen san#  - Co so du lieu dang hoat dong#  - Du lieu da ma hoa # Uoc luong TRUOC khi bat, tren he thong tep ho tro viec nay:zdb -S ten-nhom# Ket qua cho biet ty le tiet kiem du kien va bo nho can them.# Neu ty le duoi 1.5 lan thi khong dang bat. # Canh bao quan trong: sau khi bat, TAT di rat kho.# Du lieu da ghi trong che do do van giu cau truc cu.# Hay chac chan truoc khi bat, dung bat de thu. # Bat nen thi khac: gan nhu luon nen bat cho du lieu van banzfs set compression=lz4 ten-nhom/thu-muc

Bật nén cho toàn bộ, không cần chia loại

  • Với tài liệu văn phòng, mã nguồn, nhật ký: tiết kiệm rõ rệt và gần như không tốn thêm gì về hiệu năng, vì bộ xử lý hiện nay nén nhanh hơn ổ đĩa ghi.
  • Với ảnh, video, tệp đã nén sẵn: không tiết kiệm được gì, nhưng cũng không hại vì hệ thống tự bỏ qua khi thấy không nén được.
  • Kết luận: bật mặc định cho toàn bộ, không cần chia nhỏ theo loại dữ liệu.

Câu hỏi thường gặp

Bật nén có làm giảm tuổi thọ ổ SSD không

Ngược lại, thường kéo dài tuổi thọ vì lượng dữ liệu thực sự ghi xuống ổ giảm đi. Đây là một lý do nữa để bật nén trên kho dùng ổ SSD.

Khử trùng lặp và nén dùng chung được không

Được, và thứ tự là khử trùng lặp trước rồi nén. Nhưng nếu chỉ chọn một thì hãy chọn nén, vì nó cho phần lớn lợi ích với rất ít rủi ro.

Bật nén cho kho đang có dữ liệu thì sao

Chỉ dữ liệu ghi mới sau đó được nén, phần cũ giữ nguyên. Muốn nén cả phần cũ thì phải chép dữ liệu đi rồi chép về, hoặc nếu có nhân bản thì tạo lại kho từ bản nhân bản.

Phần mềm sao lưu đã nén rồi thì có cần nén ở tầng lưu trữ không

Không, và bật thêm chỉ tốn CPU mà không giảm được gì thêm. Với kho chỉ chứa bản sao lưu từ phần mềm chuyên dụng, hãy tắt cả nén lẫn khử trùng lặp ở tầng lưu trữ.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.