thắc mắc Tư vấn build homeserver tại gia

  • Người tạo chủ đề Người tạo chủ đề Kuang2
  • Ngày bắt đầu Ngày bắt đầu
B có thể giải thích tại sao file corrupt ko, mình đang chưa hiểu chỗ này lắm.
Mình nghĩ file thì lưu trên HDD, nếu có corrupt thì là do sector trên HDD lỗi chứ ram thì liên quan gì đâu nhỉ?
Lí thuyết trong quá trình lưu file nếu có lỗi trong RAM mà không có cơ chế sửa lỗi, zfs sẽ ghi cả lỗi đấy xuống đĩa luôn, nếu lỗi đúng các bit quan trọng có thể khiến file corrupt. Nhưng ngoài RAM ra thì vẫn còn đầy chỗ có thể có vấn đề như bản thân đĩa lỗi, nguồn tải file lỗi (thường tải xong check luôn thì phát hiện được nhưng ko có nghĩa là ko có), hay lỗi mạng trong quá trình tải file mà ko có cơ chế checksum, lỗi cáp SATA, lỗi controller đĩa etc... Thường nhiều người nghĩ chỉ việc ném thanh ram ECC vào là tránh được hết, nhưng thực tế mới chỉ đỡ được một phần, file vẫn có thể có lỗi ở nhiều khâu khác.
Nói chung thì muốn toàn vẹn dữ liệu cần phải check/scrub, rồi backup 3-2-1 định kì các thứ để giảm tối đa khả năng xảy ra vấn đề là được. Như tôi vẫn yolo ZFS với 128GB RAM thường nhưng chưa gặp vấn đề file nào bị lỗi trong vài năm qua. (tất nhiên vẫn backup đầy đủ, cái nào cực quan trọng thường sẽ có cả immutable backup để đảm bảo file lỗi không ghi đè lên)
 
Sửa lần cuối:
B có thể giải thích tại sao file corrupt ko, mình đang chưa hiểu chỗ này lắm.
Mình nghĩ file thì lưu trên HDD, nếu có corrupt thì là do sector trên HDD lỗi chứ ram thì liên quan gì đâu nhỉ?

Thế này nhé, ko giống như filesystem khác như ext , xfs , etc , những thằng này chỉ làm volume management , tụi đấy phải kết hợp với Raid controller để quản lí các ổ.
Zfs nó kiêm cả 2, vừa là volume manager vừa là RAID, zfs ko cần hardware raid controller, nhưng bù lại zfs phụ thuộc rất nhiều vào ram nói chung , nhất là data integrity của zfs.


1753164728545.png


Setup basic nhất, bỏ qua l2arc , zil , thì bạn sẽ thấy zfs lưu trên 2 nơi : zpool ( là hdds) và arc ( trên ram), data khi đã đọc sẽ đc cache vào ram , nas/server càng ở lâu thì cache càng nhiều,
cache càng nhiều thì IO đọc càng tốt , cache này chỉ xả khi restart lại máy. ( đó là lý do người dùng zfs thà chết chứ ko bao giờ muốn restart máy nhiều , vì restart máy lại phải build cache lại từ đầu )

Phân data lưu trên cache ( ram) sẽ dc lưu trở lại vào zpool , đặt trường hợp nếu ram lúc đấy lỗi , thì data lưu về zpool dĩ nhiên cũng sẽ mang theo lỗi.

Dĩ nhiên ram là thằng ít khi lỗi, nhưng ko phải quá hiếm đâu :D, zfs có thẻ hoạt động khá ổn định ko cần ecc ram , cơ mà nếu ko dùng ecc thì phải chấp nhận lâu lâu có file corrupt :v

Hdd có bad sector thì dễ check rồi , còn ram error cực khó check , tuần trc có thằng post bài , dùng con mini pc , để nằm xuống thì mem test Passed hết , dựng đứng lên là mem test failed :)))
 
à tìm lại đc thanh niên để nằm ram ngoan để đứng ram dỗi rồi :LOL:

 
B có thể giải thích tại sao file corrupt ko, mình đang chưa hiểu chỗ này lắm.
Mình nghĩ file thì lưu trên HDD, nếu có corrupt thì là do sector trên HDD lỗi chứ ram thì liên quan gì đâu nhỉ?
Nó không phải lỗi ở HDD mà là lỗi ở RAM. Mỗi khi bạn download một file, thì file đó được buf ở RAM trước khi ghi vào HDD. Ở vài điều kiện nhất định, dữ liệu trong RAM bị nhảy (bit flip) từ 0 -> 1 hay từ 1 -> 0.

A. Nguyên nhân lỗi​

Hai nguyên nhân chính gây lỗi dữ liệu ở RAM là:
  1. Từ trường: (và cả bức xạ), nếu bạn để máy trong môi từ trường rất mạnh, chắc chắn electron trong RAM sẽ loạn. Bạn thấy điện thoại luôn có shield ở mấy linh kiện quan trọng, bởi vì board điện thoại rất nhỏ, các linh kiện san sát nhau dễ gây ảnh hưởng chéo, nên mới cần có shield. Tuy nhiên lỗi này rất hiếm xảy ra.
  2. Sốc điện: đây mới là nguyên nhân chính ở mấy tính cá nhân (và cả server). Điện lưới xoay chiều không bao giờ đủ ổn định. Vào một ngày đẹp trời điện sụt vài Volt trong thời gian đủ dài, cục PSU không đủ tốt để cung cấp điện cho Mainboard, thế là electron trong RAM bị loạn gây lỗi dữ liệu; nhưng điện vẫn đủ mạnh để máy vẫn chạy không bị reboot. Thế là lỗi dữ liệu âm thầm ở RAM.
    • Lúc này một cục PSU và các tụ điện (nói chung là lịnh kiện tốt) là quan trọng đến mức nào.
    • Chân RAM cũng vô cùng quan trọng. Như mấy bạn nói ở trên, tỉ lệ lỗi của soldered RAM ít hơn rất rất nhiều so với thanh RAM rời. Nó nằm ở diện tích tiếp xúc, khiến dòng điện đi qua không đều.

B. ZFS thiên thần và ác quỷ​

Ngay cả khi dữ liệu ở RAM bị lỗi, điều đó không có nghĩa là file của bạn sẽ bị corrupted. Giả sử RAM của bạn là 16GB, nhưng program của bạn chỉ dùng 2GB thì tỉ lệ lỗi tại thời điểm sốc điện chỉ là 12,5%. Tuy nhiên không phải mọi thứ đều bình đẳng. Lấy ví dụ ZFS.
  1. Diện tích phơi nhiễm: Giả sử bạn chỉ sửa 4KB dữ liệu trong một file, các FS bình thường thường như EXT4, XFS có block là 4KB nên nó chỉ write 4KB + (<= 4KB) metadata (modified time) vào Disk. Nhưng ZFS có record size là 128KB (default), nên nó sẽ ghi 128KB vào Disk cho dù chỉ đổi 4KB. Lúc này tỉ lệ lỗi tăng lên 32 lần.
  2. Thời gian phơi nhiễm: Gần như tất cả DB đều tận dụng tính năng ghi trực tiếp (O_DIRECT) lên Disk không qua OS file buffer, bởi vì DB có cơ chế buffer optimized cho chính bản thân rồi. ZFS không cho phép O_DIRECT, vì nó cần buf data để tính checksum. như vậy thời gian dữ liệu buf trong RAM tăng (tạm gọi) gấp đôi so với bình thường. Do đó tỉ lệ lỗi tăng lên 32 x 2 = 64 lần.
  3. Amplification: Sẽ rất rất rất rất tệ nếu bạn dùng VM sử dụng ZFS trên host ZFS.
Như bạn thấy, ZFS có checksum để phát hiện corrupted file (rất tốt), nhưng chỉ nên dùng khi có ECC vì tỉ lệ gây lỗi của nó. Đặc biệt khi dùng DB như MySQL, Postgres, MSSQL, SQLite, etc. thường có small write, tỉ lệ gây lỗi cũng như bào mòn SSD có thể lên đến 100 lần. Chỉ nên dùng ZFS khi có ECC RAM + HDD (hoặc Enterprise SSD).

Dó đó sẽ bình thường nếu bạn nghe ai đó dùng ZFS nói 1 năm phát hiện có 1 file corrupted. Còn người khác không dùng thì phản bác tôi phè phè bao nhiêu năm có bị sao đâu. Bởi vì theo xác suất người khác có thể cần đến hàng chục năm mới có file corrupted, mà SSD thì không tồn tại lâu đến thế.

Lưu ý, tất cả con số chỉ là tham khảo, vì nó phụ thuộc rất nhiều vào usecase và workload.
 
Đọc cmt xong tự nhiên thấy tạo cái pool gộp 3 ổ HDD vào lưu ảnh vào video gốc hơi thừa thãi =)). Đằng nào cũng proxy lúc edit rồi nên có khi chả cần truy cập liên tục, khéo cứ để vào array của Unraid thôi cũng đủ dùng r
 
Có bác nào chỉ port forward 80 và 443 trên router cho reserve proxy thôi không? Và chỉ dùng firewall mặt định trên router. Cho em xin kinh nghiệm của bác với. Bác bị hack bao giờ chưa? Bác bị tấn công sao? Bác xài port forward bao lâu rồi? Router gì?

Tại em không đủ tiền mua thiết bị firewall. Em lại không có dư thiết bị làm firewall 😖. Xài cloudflare turnel thì em xài gói free bị giới hạn upload. Tailsalce, twingate hay VPN thì không public cho ai xài cũng được.
 
Có bác nào chỉ port forward 80 và 443 trên router cho reserve proxy thôi không? Và chỉ dùng firewall mặt định trên router. Cho em xin kinh nghiệm của bác với. Bác bị hack bao giờ chưa? Bác bị tấn công sao? Bác xài port forward bao lâu rồi? Router gì?

Tại em không đủ tiền mua thiết bị firewall. Em lại không có dư thiết bị làm firewall 😖. Xài cloudflare turnel thì em xài gói free bị giới hạn upload. Tailsalce, twingate hay VPN thì không public cho ai xài cũng được.
Rồi dữ liệu gì mà sợ hack, sv khoẻ quá hay sao. Người dùng bt mà như it hịn để làm gì cho mệt mỏi. Đây mở toang cả dmz 3 năm roài. Hack thì format cài lại :))
 
Có bác nào chỉ port forward 80 và 443 trên router cho reserve proxy thôi không? Và chỉ dùng firewall mặt định trên router. Cho em xin kinh nghiệm của bác với. Bác bị hack bao giờ chưa? Bác bị tấn công sao? Bác xài port forward bao lâu rồi? Router gì?

Tại em không đủ tiền mua thiết bị firewall. Em lại không có dư thiết bị làm firewall 😖. Xài cloudflare turnel thì em xài gói free bị giới hạn upload. Tailsalce, twingate hay VPN thì không public cho ai xài cũng được.
2 cái này đập nhau chan chát.
 
Rồi dữ liệu gì mà sợ hack, sv khoẻ quá hay sao. Người dùng bt mà như it hịn để làm gì cho mệt mỏi. Đây mở toang cả dmz 3 năm roài. Hack thì format cài lại :))
Em thích những người có phong thái tự tin như bác. Bác đã bơm cho em động lực tiếp tục xài Firewall của router.
 
Em thích những người có phong thái tự tin như bác. Bác đã bơm cho em động lực tiếp tục xài Firewall của router.
=)) móa trước mua đủ thứ về cài, xong vừa thêm mệt vừa tốn điện tốn tiền. Dẹp hết để nguyên rom gốc router, DMZ hẳn con sv ra ngoài cho a em nó đục phá, mãi không thấy ông nào đục được, toàn bot quét theo chế độ để sẵn. Nào mà máy báo bị hack thì ấn tắt nguồn từ xa =)), xong về format lại. backup cái rụp =)) đấy là nghĩ thế mà chưa có cơ hội được làm :D
 
Có bác nào chỉ port forward 80 và 443 trên router cho reserve proxy thôi không? Và chỉ dùng firewall mặt định trên router. Cho em xin kinh nghiệm của bác với. Bác bị hack bao giờ chưa? Bác bị tấn công sao? Bác xài port forward bao lâu rồi? Router gì?

Tại em không đủ tiền mua thiết bị firewall. Em lại không có dư thiết bị làm firewall 😖. Xài cloudflare turnel thì em xài gói free bị giới hạn upload. Tailsalce, twingate hay VPN thì không public cho ai xài cũng được.
tui thì mở port 443 nhưng mà mở cho cái haproxy để nó forward vào trong server ở phía sau.
haproxy thì chạy trên con pfsense "lỏ"
chứng chỉ ssl thì xài đồ free của letencrypt
dns thì mua của namecheap (tên thì cheap chứ duy trì mắc thấy mợ) xong đẩy qua he dns quản lý.

một số dịch vụ chỉ cho cá nhân với bạn bè xài thì mình đặt mật khẩu dạng basic authen thôi (chỉ riêng cái mật khẩu này đã khiến 99% bot toạch ở khâu scan)
nói chung trong gần chục năm mở port thì có 1-2 lần gì đó lúc cấu hình thử nghiệm mấy cái app web quên xóa thư mục setup nên bị bot vào phá, còn lại thì thấy chạy phè phè chả ai động chạm gì.

à mà nếu thím mở port 22 thì nó lại là 1 câu chuyện khác ......
 
Đóng cái fail2ban cũng đỡ đc xíu :v, ít nhất bot lỏ ko scan đc port với ip xấu là cút hết :sweat:
 

Thống kê chủ đề

Ngày tạo
Kuang2,
Người trả lời cuối
hitmanbabyvn,
Trả lời
93
Lượt xem
11.931
Quay lại
Lên đầu trang