Tìm kiếm trang web

Proxmox giải quyết vấn đề sao lưu lớn nhất của Plex, nhưng hầu hết mọi người không biết điều đó


Có một cảm giác đặc biệt, đầy hụt hẫng mà mọi người dùng Plex đều biết rõ. Bạn đăng nhập vào máy chủ của mình, sẵn sàng thư giãn với thư viện phương tiện được tuyển chọn kỹ lưỡng, và thay vì nhìn thấy lưới áp phích phim quen thuộc, bạn lại được chào đón bởi một màn hình màu cam trống trơn. Cơ sở dữ liệu đã bị hỏng và những bộ sưu tập được chọn lọc cẩn thận mà bạn đã mất cả tuần để xây dựng giờ đã biến mất vào hư không kỹ thuật số.

Plex là một phần mềm tuyệt vời, nhưng điểm yếu chí mạng của nó luôn là sự mong manh của cơ sở dữ liệu và các tập tin cấu hình nền tảng. Chúng tôi đã dành vô số giờ để xây dựng các mảng lưu trữ dự phòng cho các tệp phương tiện của mình, đảm bảo không có một ISO Linux nào bị mất, đồng thời mù quáng bỏ qua thành phần đơn lẻ không thể thay thế trong toàn bộ hệ thống: dữ liệu ứng dụng Plex. Đây là lúc Proxmox xuất hiện với tính năng chụp nhanh VM, một giải pháp hiển nhiên nhưng phần lớn cộng đồng vẫn chưa áp dụng cho trường hợp sử dụng cụ thể này.

Các tệp phương tiện không phải là thư viện của bạn

Những gì bạn thực sự mất khi Plex bị hỏng

Có một sự hiểu lầm cơ bản chi phối cách hầu hết mọi người tiếp cận các bản sao lưu phương tiện gia đình của họ. Điều rõ ràng nhất là bảo vệ terabyte, 4K remuxes và các bộ phim nước ngoài ít người biết đến, nhưng hãy tự hỏi bản thân điều gì thực sự không thể thay thế trong một ngăn xếp phương tiện tự động được cấu hình tốt?

Trong một *arr stack, trong hầu hết các trường hợp, các tệp phương tiện của bạn không phải là những hiện vật độc đáo quý giá. Với một cấu hình hoạt động và kết nối internet, *arr stack của bạn có thể có phương pháp và tự động lấy lại từng tệp phương tiện mà bạn từng sở hữu. Nó sẽ không diễn ra ngay lập tức, nhưng đó là một quá trình gần như hoàn toàn tự động và không cần bất kỳ đầu vào sáng tạo nào từ con người sau khi được cấu hình.

Những gì mà *arr stack không thể tải xuống là siêu dữ liệu của bạn. Nó không thể tải lại lịch sử xem nhiều năm hay poster tùy chỉnh mà bạn đã chọn thủ công vì poster mặc định được đóng khung kém. Ngoài ra, nó cũng không thể tải lại các quy tắc sưu tập đã được tinh chỉnh thủ công để nhóm các phim James Bond theo thứ tự thời gian thay vì theo bảng chữ cái. Dữ liệu này tồn tại trong thư mục dữ liệu ứng dụng Plex, chủ yếu là trong cơ sở dữ liệu SQLite của nó.

Khi cơ sở dữ liệu đó bị hỏng, và nó sẽ hỏng, cuối cùng, bởi vì SQLite và mất điện là kẻ thù tự nhiên, bạn sẽ mất thứ mà không lượng internet gigabit nào có thể khôi phục được.

Bản sao lưu Proxmox

Máy trạng thái tại một thời điểm

Một số bạn, đặc biệt là người dùng Docker, có thể nhanh chóng chỉ ra rằng bạn đã ánh xạ thư mục /config vào một ổ đĩa một cách bền vững. Điều đó hoạt động cho việc khôi phục tệp đơn giản, giả sử bạn đang chạy các công việc tarball hàng đêm, nhưng việc sao chép cơ sở dữ liệu đang chạy ở mức tệp là một trò chơi roulette Nga. Nếu bạn sao chép cơ sở dữ liệu SQLite trong khi nó đang bị khóa ghi, bản “sao lưu” của bạn chính là một hư hỏng đang chờ xảy ra. Cách duy nhất để sao lưu sạch là dừng máy chủ cơ sở dữ liệu, sao chép tệp và khởi động lại. Việc dừng thủ công Plex nửa giờ mỗi đêm không phải là điều mà hầu hết mọi người làm và không thực tế. Đây là nơi snapshot của máy ảo Proxmox thuộc một loại sao lưu hoàn toàn khác vì nó hoạt động không ở mức tệp, mà ở mức khối và trạng thái bộ nhớ.

Khi bạn kích hoạt một bản snapshot Proxmox của máy ảo đang chạy, nó sẽ tạm dừng tất cả các hoạt động ghi, xả bộ nhớ đệm hệ thống tệp ra đĩa và ghi lại trạng thái chính xác của từng bit trên đĩa ảo tại nanô giây đó. Nó cũng ghi lại trạng thái của RAM và sau đó bỏ tạm dừng cho máy ảo. Toàn bộ quá trình này mất chưa đầy một giây và sự gián đoạn dịch vụ thường nhỏ đến mức một lệnh ping liên tục có thể không mất một gói dữ liệu nào.

Điều này cung cấp cho bạn một bản sao đầy đủ nhất quán, nhất quán trong trường hợp sự cố của toàn bộ đĩa ảo và bộ nhớ. Nếu Plex đang chạy, bản chụp nhanh chứa một hình ảnh của cơ sở dữ liệu SQLite đó chính xác như nó tồn tại, được công cụ cơ sở dữ liệu nhận diện, không phải trong quá trình giao dịch.

Quay lại bản cập nhật Plex bị lỗi trong vài giây

Việc phục hồi mang cảm giác như du hành thời gian

Đây là phép màu “nó chỉ hoạt động” mà hầu hết mọi người không trân trọng cho đến khi họ trải nghiệm nó trong một cuộc khủng hoảng. Hãy tưởng tượng đội ngũ Plex phát hành một bản cập nhật. Bạn cài đặt nó mà không suy nghĩ, điều mà nhiều người trong chúng ta đều có tội. Một điều gì đó xảy ra thảm khốc, và script di chuyển cơ sở dữ liệu làm hỏng thư viện của bạn, xóa lịch sử xem của bạn và để lại các tệp phương tiện chưa ghép nối rải rác khắp nơi.

Trên một hệ thống bare-metal hoặc Docker, đường dẫn khôi phục của bạn liên quan đến việc tìm kiếm trong các bản sao lưu hệ thống tệp của bạn, hy vọng tìm thấy một bản sao của cơ sở dữ liệu từ trước khi cập nhật. Bạn dừng Plex, thay thế cơ sở dữ liệu bị hỏng bằng bản cũ, khởi động lại Plex và cầu nguyện rằng mọi thứ hoạt động, nhưng trong hầu hết các trường hợp, việc mất dữ liệu xem từ những ngày giữa lần sao lưu cuối cùng và hiện tại là điều không thể tránh khỏi.






Trên Proxmox, đường dẫn phục hồi của bạn chỉ là ba lần nhấp chuột. Bạn điều hướng tới VM Plex của mình trong giao diện web. Bạn dừng VM. Bạn chọn tab “Snapshots”. Bạn thấy danh sách các snapshot có dấu thời gian, bạn đã tạo một snapshot mỗi ngày, tự động, vì Proxmox cho phép bạn lập lịch snapshot một cách nguyên bản mà không cần một dòng mã bên ngoài nào. Bạn chọn snapshot đó và nhấp vào “Rollback”. Năm giây sau, bạn khởi động lại VM. Plex khởi động và cơ sở dữ liệu giống y hệt, từng bit một với trạng thái trước đó, mọi thứ vẫn nguyên vẹn. Đây không phải là sao lưu theo nghĩa truyền thống, mà là nút hoàn tác sạch cho toàn bộ máy chủ của bạn.

Điều này có làm đầy bộ nhớ của tôi không?

Cơ chế phân bổ mỏng và CoW

Một phản đối phổ biến và hợp lệ đối với phương pháp này là không gian đĩa. “Nếu tôi lưu trữ một bản snapshot của VM Plex mỗi ngày, liệu điều đó có làm tiêu tốn terabyte dung lượng SSD đắt tiền của tôi không?” Đây là lúc kiến trúc triển khai của Proxmox, đặc biệt khi sử dụng ZFS hoặc LVM-thin, trở nên hữu ích. Các snapshot của Proxmox không phải là bản sao đầy đủ mà sử dụng cơ chế copy-on-write.

Điều này có nghĩa là về mặt thực tiễn, khi bạn chụp một bức ảnh cơ sở, hệ thống sẽ tạo ra một tệp delta trống mới. Trong vòng 24 giờ, chỉ các khối dữ liệu thay đổi được ghi vào delta đó. Nếu cơ sở dữ liệu Plex của bạn là 500MB, và bạn xem vài chương trình, chỉ các khối cụ thể 50MB của tệp cơ sở dữ liệu đó thực sự thay đổi mới được ghi vào snapshot. Bản snapshot tự nó vẫn rất nhỏ và liên kết với hình ảnh cơ sở.

Bạn có thể duy trì một chuỗi các bản chụp nhanh luân phiên, mỗi ba giờ trong ngày trước, cộng với một vài bản hàng ngày mà không tiêu tốn dung lượng đĩa thô cần thiết để lưu trữ các bản sao đầy đủ. Một tuần các bản chụp nhanh Plex chi tiết có thể tốn ít dung lượng hơn một tệp phim 4K duy nhất.

Sự hạn chế

Các tệp phương tiện không thuộc về đây

Chiến lược này đòi hỏi một sự làm rõ về kiến trúc mà thường phân biệt những người làm homelab khôn ngoan với những người bị hỏng. Snapshot của VM rất tuyệt, nhưng nó không được sử dụng như một giải pháp bao trùm cho mọi thứ bên trong VM. Đây là chế độ thất bại phổ biến nhất của thiết kế này.

Tiết kiệm chi phí với các ưu đãi về lưu trữ & mạng cho máy chủ tại gia

Bạn không nên lưu trữ các tệp phương tiện của mình bên trong VM Proxmox. Nếu VM Plex của bạn có một ổ đĩa ảo 12TB đầy các tệp phương tiện, các tệp delta snapshot sẽ nhanh chóng trở nên khó quản lý.

Ngoài ra, nếu bạn phải khôi phục VM để khắc phục sự cố hỏng cơ sở dữ liệu, bạn cũng đang khôi phục lại bộ sưu tập phương tiện của mình. Một tập tin được thêm vào vào thứ Hai sẽ biến mất nếu bạn quay lại ngày Chủ nhật và đó không phải là điều bạn muốn xảy ra.


Tại sao điều này chưa trở thành thực hành tiêu chuẩn

Lý do phương pháp này vẫn ít được bàn luận là do văn hóa. Cộng đồng Plex từ trước đến nay chia thành hai nhóm: những người dùng hệ điều hành sẵn sàng (Windows, Unraid, Synology) coi trọng sự đơn giản và nhóm Docker ưu tiên các container không trạng thái nhưng thường bỏ qua lớp lưu trữ lâu dài. Proxmox đại diện cho một con đường thứ ba, thường liên quan đến quản trị máy chủ, điều này tạo ra một rào cản nhận thức đáng sợ.

Nhưng thực tế là một instance Proxmox cơ bản với một VM Plex duy nhất không phức tạp hơn trong việc duy trì so với một máy chủ Unraid. Giao diện web là kiểu nhấn và chọn, và với đường cong học tập vừa phải đó, bạn sẽ có một chính sách bảo hiểm chống lại chế độ hỏng Plex tồi tệ nhất tồn tại.

Bài viết liên quan