Dọn dữ liệu và giữ dung lượng Object Storage trong tầm kiểm soát

Kho lưu trữ chỉ có một hướng tăng nếu không ai dọn. Bài này hướng dẫn biết dữ liệu đang nằm ở đâu, dọn thứ không cần, và đặt quy tắc để khỏi phải dọn tay mãi.

1. Trước khi dọn: biết dữ liệu đang nằm ở đâu

Đừng dọn theo cảm giác. Đo trước.

Tổng dung lượng từng bucket:

mc du cloudzone

Bên trong một bucket, nhánh nào nặng nhất:

mc du --depth 2 cloudzone/abc-sao-luu-web

Tuỳ chọn --depth cho biết nên đào tiếp vào đâu, thay vì liệt kê hàng nghìn tệp.

Những tệp lớn nhất:

mc ls --recursive cloudzone/abc-sao-luu-web | sort -k4 -h -r | head -20

Kinh nghiệm thường thấy: một phần nhỏ số tệp chiếm phần lớn dung lượng. Tìm được nhóm đó là giải quyết được gần hết bài toán.

Những tệp cũ nhất:

mc find cloudzone/abc-sao-luu-web --older-than 180d

2. Bốn nguồn phình dung lượng hay gặp

Nguồn Dấu hiệu Cách xử lý
Bản sao lưu không ai xoá Thư mục theo ngày, có đủ ngày từ lúc bắt đầu tới nay Đặt quy tắc giữ bao nhiêu ngày, xem mục 3
Đẩy lại toàn bộ mỗi đêm Mỗi ngày một bản đầy đủ, dung lượng tăng đều đặn Chuyển sang chỉ đẩy phần thay đổi
Phần tải lên dở dang Dung lượng tính tiền cao hơn tổng tệp nhìn thấy Xem mục 4
Dữ liệu của dự án đã đóng Bucket không ai đụng tới nhiều tháng Tải về lưu nơi khác rồi xoá, hoặc xoá hẳn nếu không cần

Nguồn thứ ba là nguồn khó thấy nhất, vì nó không hiện ra khi liệt kê tệp.

3. Dọn bản sao lưu cũ

Quy tắc đơn giản và chạy được: giữ 30 ngày gần nhất, xoá cũ hơn.

Xem trước sẽ xoá những gì, chưa xoá thật:

mc find cloudzone/abc-sao-luu-web/web --older-than 30d

🔴 Luôn chạy lệnh xem trước và đọc hết danh sách. Xoá trong Object Storage là xoá thật, không có thùng rác.

Xoá thật:

mc rm --recursive --force --older-than 30d cloudzone/abc-sao-luu-web/web

Với rclone:

rclone delete cloudzone:abc-sao-luu-web/web --min-age 30d --dry-run   # xem truoc
rclone delete cloudzone:abc-sao-luu-web/web --min-age 30d             # xoa that
rclone rmdirs cloudzone:abc-sao-luu-web/web --leave-root              # don thu muc rong

Quy tắc giữ nên cân nhắc, không nên lấy 30 ngày làm mặc định cho mọi thứ:

Loại dữ liệu Gợi ý giữ
Sao lưu hằng ngày của website 14 tới 30 ngày
Sao lưu cơ sở dữ liệu 30 ngày, kèm giữ riêng bản cuối mỗi tháng
Chứng từ, sổ sách Theo quy định của ngành, thường nhiều năm
Tệp tạm, kết xuất trung gian 7 ngày

Một cách bố trí gọn: mỗi loại một bucket riêng, rồi mỗi bucket một quy tắc. Dồn chung một bucket thì không đặt quy tắc riêng được.

4. Phần tải lên dở dang: chỗ tốn tiền mà không ai thấy

Khi tải một tệp lớn, công cụ cắt nó thành nhiều phần rồi ghép lại. Nếu lượt tải bị ngắt giữa chừng, những phần đã lên vẫn nằm lại trên kho nhưng không hiện ra khi liệt kê tệp.

Chúng vẫn tính vào dung lượng. Với một hệ thống sao lưu đêm nào cũng chạy và thỉnh thoảng đứt, lượng rác này tích lại đáng kể sau vài tháng.

Xem có bao nhiêu:

mc ls --incomplete --recursive cloudzone/abc-sao-luu-web

Dọn:

mc rm --incomplete --recursive --force cloudzone/abc-sao-luu-web

Nên đưa lệnh xem vào việc kiểm hằng tháng. Đây là chỗ hay giải thích được câu hỏi “vì sao dung lượng tính tiền cao hơn tổng tệp tôi thấy”.

5. Tự động hoá để khỏi phải nhớ

Dọn tay thì tháng đầu ai cũng làm, tháng thứ tư thì quên. Đưa vào lịch chạy tự động:

Tạo tệp /root/don-kho.sh:

#!/bin/bash
set -euo pipefail

BUCKET=cloudzone:abc-sao-luu-web

# Xoa ban sao luu cu hon 30 ngay
rclone delete "$BUCKET/web" --min-age 30d --log-file /var/log/don-kho.log --log-level INFO
rclone rmdirs "$BUCKET/web" --leave-root

# Ghi lai dung luong con lai de theo doi theo thang
echo "$(date +%F) $(rclone size "$BUCKET" --json)" >> /var/log/dung-luong-kho.log

Cấp quyền chạy rồi hẹn giờ mỗi tuần một lần:

chmod +x /root/don-kho.sh
crontab -e

Thêm dòng chạy 3 giờ sáng Chủ nhật:

0 3 * * 0 /root/don-kho.sh

Dòng ghi dung lượng vào nhật ký là phần đáng giá nhất của kịch bản này: sau vài tháng, quý Khách hàng có một bảng số cho biết kho đang tăng bao nhiêu mỗi tháng, và còn bao lâu nữa thì chạm hạn mức.

6. Giảm dung lượng mà không xoá gì

Ba cách, làm được ngay:

Nén trước khi đẩy. Dữ liệu dạng chữ nén rất tốt: kết xuất cơ sở dữ liệu, nhật ký, tệp cấu hình. Ảnh và video thì nén thêm gần như không ăn thua.

mysqldump ten_csdl | gzip > sao-luu.sql.gz

Chỉ đẩy phần thay đổi. Thay vì mỗi đêm đẩy lại toàn bộ thư mục, dùng lệnh so sánh rồi chỉ gửi phần khác. Đây là cách giảm được nhiều nhất, và nó giảm cả băng thông.

Loại thứ không cần sao lưu. Thư mục bộ nhớ đệm, tệp tạm, thư viện tải lại được:

rclone copy /var/www cloudzone:abc-sao-luu-web/web \
    --exclude "*.log" --exclude "cache/**" --exclude "node_modules/**" --exclude "vendor/**"

Riêng node_modules và vendor thường chiếm phần lớn dung lượng của một thư mục website, trong khi chúng tải lại được từ tệp khai báo gói. Loại chúng ra thường giảm được rất nhiều.

7. Theo dõi theo tháng

Bốn con số nên ghi lại mỗi tháng:

Con số Lấy bằng
Dung lượng từng bucket mc du cloudzone
Tăng bao nhiêu so với tháng trước So với dòng ghi tháng trước
Phần tải dở dang mc ls --incomplete --recursive
Băng thông đã dùng Xem trong Portal Cloudzone

Biết tốc độ tăng là biết còn bao lâu nữa phải mua thêm. Đó là thứ cho phép chuẩn bị trước thay vì xử lý gấp.

8. Khi cần thêm dung lượng

Mua thêm addon ngay trong Portal Cloudzone, hoặc nâng lên gói lớn hơn. Cả hai cách đều giữ nguyên dữ liệu và khoá truy cập, không phải cấu hình lại công cụ.

Quý Khách hàng muốn tư vấn gói phù hợp với tốc độ tăng dữ liệu của mình, hãy liên hệ đội ngũ kinh doanh Cloudzone hoặc nhắn qua ô chat trên trang chủ.

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

Xoá nhầm thì lấy lại được không? Không. Xoá là xoá thật. Đây là lý do mọi lệnh xoá trong bài đều có bước xem trước.

Xoá dữ liệu xong dung lượng có giảm ngay không? Có, ngay sau khi lệnh xoá chạy xong. Nếu không giảm, kiểm phần tải dở dang ở mục 4.

Tôi nên để bao nhiêu bucket? Mỗi việc một bucket. Tách sẵn thì mỗi việc đặt được quy tắc giữ riêng, và xoá một việc không đụng tới việc khác.

Dọn bằng tay hay tự động? Tự động, với một ngoại lệ: lần đầu tiên hãy làm tay và đọc kỹ danh sách sẽ xoá. Đặt lịch tự động cho một quy tắc chưa kiểm là cách nhanh nhất để mất dữ liệu đều đặn mỗi tuần.

Hướng dẫn này có ích cho bạn?

Cần đặt dịch vụ? Xem cấu hình và giá tại bảng giá Cloudzone - đặt gói trực tuyến, nhận dịch vụ ngay sau thanh toán. Cần tư vấn, mở khung chat ở góc phải màn hình.

Hướng dẫn liên quan