Powered by Blogger.

Phần bảo vệ kho dữ liệu HD

Ngày nay, khi mà khối lượng thông tin của con người ngày càng nhiều về lượng, phong phú về nội dung, đa dạng về hình thức thì nhu cầu về lưu trữ và đặc biệt là bảo vệ chúng cũng càng trở nên cấp thiết và nóng hơn bao giờ hết. Hãy tưởng tượng một công ty đầu tư nước ngoài vào làm ăn ở Việt Nam, cuối năm kết toán sổ sách báo cáo về công ty mẹ xem lời lãi như nào. Nhưng rủi thay dữ liệu bị mất hết thì Giám đốc công ty có đáng đem ra trảm không? Rồi ăn nói sao với cơ quan thuế vụ? Càng vi tính hóa (paperless) thì càng chết nhiều. Còn riêng với anh em HD thì nhu cầu bảo vệ phim, nhạc, dữ liệu như thế nào thì có lẽ tôi không cần nhắc lại. 





I. Mất dữ liệu

Trước khi đi vào phần chính – phần bảo vệ dữ liệu HD, tôi nghĩ các bạn cũng cần nên biết một chút về thế nào là mất dữ liệu. Vì có biết về mất dữ liệu thì mới biết cách bảo vệ dữ liệu cho đúng đắn và hiệu quả. Cũng như khi ra trận đánh giặc thì phải biết giặc là ai thì mới đánh được chứ, chả nhẽ đánh vào không khí à? Có người nói tôi rườm rà, dài dòng, nhưng tính tôi nó thế. Khi làm thì phải biết mình đang làm cái gì, kết quả ra sao. Còn như không biết thì không làm, chứ không theo kiểu Thiên Lôi ai sai đâu đánh đó. Mong các bạn thông cảm.

Mất dữ liệu được xem là một tình trạng lỗi trong các hệ thống thông tin mà ở đó các dữ liệu bị mất sạch, không còn được truy xuất được nữa. Điều này xảy ra có thể trong quá trình thực thi tác vụ, truyền tải hoặc lưu trữ.




Ta phải cần phân biệt một điều là mất dữ liệu nó khác với trường hợp dữ liệu không sẵn sàng để sử dụng. Ta lấy ví dụ khi bạn đang xem phim qua Youtube giữa chừng thì bị đứt mạng. Bạn có thể truy cập được dữ liệu để coi tiếp không? Dĩ nhiên là không rồi, nhưng bạn có cho rằng bị mất dữ liệu không hay chỉ tạm thời thôi rồi khi nào nối mạng lại thì xem được tiếp? 

Mặc dù cả hai trường hợp trên đều cho những hậu quả tương tự cho người dùng, tức không truy xuất được dữ liệu, nhưng dữ liệu không sẵn sàng chỉ mang tính là tạm thời, trong khi mất dữ liệu có thể được coi là mất vĩnh viễn. 

Ngoài ra còn một trường hợp mất dữ liệu nữa mà ta thường hay nghe, đặc biệt trên các báo đài. Mất dữ liệu ở đây thật ra không phải là người chủ dữ liệu đó bị mất (vẫn còn nguyên vẹn trong tay ấy chứ) mà là các dữ liệu (nhạy cảm ấy) bị hack cho bên thứ 3 biết. Thiệt hại từ sự cố này cũng đáng kể chứ chẳng chơi. Ví dụ như dữ liệu nhạy cảm về công nghệ chế tạo máy bay tàng hình không người lái tác chiến trên tàu sân bay của Mỹ mà rơi vào tay nước “lạ” xem, chuyện sẽ không nhỏ đâu. Hoặc như các dữ liệu về hợp đồng mua bán thậm thụt với nước ngoài bị mất vào tay các phương tiện truyền thông xem, sẽ có khối anh Giám đốc vào nhà đá gỡ lịch hoặc về nhà đuổi gà cho vợ.

1/ Các loại mất dữ liệu

Do hành động cố ý: Các dữ liệu bị xóa với sự chủ ý của người dùng.
Do hành động vô ý: gồm 
- Tình cờ xóa một tập tin hoặc chương trình.
- Thất lạc phương tiện lưu trữ như ổ cứng, tape, đĩa CD hay thẻ nhớ
- Quản trị dữ liệu tồi
- Không đọc được dữ liệu chứa trong các định dạng lạ

2/ Lỗi hư hỏng

- Mất điện, dẫn đến dữ liệu trong bộ nhớ tạm không được lưu kịp thời vào nơi lưu trữ lâu dài.
- Lỗi phần cứng, chẳng hạn như một vụ tai nạn của đầu đọc trong một đĩa cứng.
- Lỗi phần mềm bị sụp hoặc bị treo dẫn đến dữ liệu cũng không được lưu đúng đắn.
- Phần mềm bị lỗi trong quá trình viết hoặc khả năng sử dụng kém, chẳng hạn như không xác nhận lệnh xóa một tập tin.
- Dữ liệu tự nó bị hư hỏng ngầm – Xin xem về bài viết nói về Data Rot.

3/ Các thảm họa

- Thiên tai, động đất, lũ lụt, lốc xoáy, v..v...
- Lửa

4/ Tội phạm

- Trộm cắp, đột nhập, phá hoại, v..v...
- Các hành động ác ý chẳng hạn như lén lút thả virus, worm, và hacker cũng như hành động trộm cắp các phương tiện lưu trữ vật lý.

Tóm lại, trong một nghiên cứu được đăng trên Wiki cho thấy lỗi phần cứng và lỗi của con người là hai nguyên nhân phổ biến nhất gây mất mát dữ liệu, nó chiếm khoảng ba phần tư của tất cả các sự cố mất dữ liệu. Nguyên nhân nữa làm mất dữ liệu là các thảm họa tự nhiên. Tuy nhiên khả năng mất dữ liệu do thảm họa tự nhiên là nhỏ. Cách duy nhất để chuẩn bị cho một biến cố thương đau là mất dữ liệu, tôi và các bạn không biết phải làm gì hơn là chủ động chọn cho mình một phương pháp hữu hiệu nhằm bảo vệ lấy nhưng dữ liệu yêu quý của mình đã dày công sưu tầm trong bằng ấy năm nay. 


II. Chọn lựa phần mềm – Software

- Bám vào các tiêu chuẩn khi chọn lựa: So với việc chọn lựa phần cứng đòi hỏi sự tỉ mỉ cẩn thận ở bài 1, thì việc chọn lựa phần mềm ở đây khá đơn giản. Tuy nhiên nó vẫn không kém phần quan trọng. Cũng giống như ở phần cứng, ta vẫn phải bám chặt lấy những tiêu chuẩn được đề ra ngay từ đầu. Tôi lấy ví dụ để thấy tại sao nó quan trọng. Tiêu chuẩn đề ra là khi nghe nhạc hoặc xem phim thì một ổ cứng và chỉ có một ổ cứng làm việc thôi, những cái còn lại phải ở trong trạng thái nghỉ. Nếu như tôi chọn standard RAID 5 thì coi như phá sản rồi chứ gì nữa, vì trong lúc chạy tất cả các HDD chạy theo Raid 5 phải chạy cùng lúc mới được.

- Ngoài ra, do tính chất đặc thù của một hệ thống chỉ chuyên lưu trữ dữ liệu, nên ta cố gắng càng ít cài các loại phần mềm vớ vẩn càng tốt. Chủ yếu nhằm tiết kiệm tài nguyên hệ thống, máy khởi động được nhanh, ngoài ra còn nhằm tránh các trường hợp xung đột phần mềm không đáng có.

1/ Hệ Điều Hành

Dĩ nhiên rồi vì hệ thống lưu trữ nào mà không cần nó. Bạn có thể dùng HĐH Windows hay Linux (2 loại thông dụng hiện nay dành cho lưu trữ) là tùy nhu cầu, điều kiện và sở thích của bạn. Tôi chọn Windows vì sự phổ dụng của nó đối với người dùng gia đình. Ngoài ra nếu mình bị bí thì chạy lên mạng hỏi sẽ dễ được trả lời hơn. Giả dụ như tôi “lúa” không biết cách mount ổ cứng thì trong Windows sẽ có nhiều người biết và dễ dàng chỉ cho tôi so với Linux. Hay cái ổ cứng đã được format ở NTFS, thì khi nhổ phăng từ máy chủ có thể đem đi cắm vào bất cứ máy dùng HĐH Windows, khỏe re như bò kéo xe, khỏi lăn tăn suy nghĩ cách đổi định dạng. Đó là tôi đang nói chúng ta – những người dùng gia đình thôi. Còn đối với các doanh nghiệp lớn, lượng thông tin lưu trữ nhiều theo tôi biết ít ai dám can đảm như chúng ta mà dùng Windows lắm. Một điều dễ thấy là hệ điều hành mở quản lý dữ liệu mạnh mẽ và bảo mật hơn Windows nhiều lắm luôn và vì không thuộc phạm trù bài viết này nên tôi không tiện nói nhiều.

Đồng ý là Windows rồi nhưng mà là Windows gì? Theo kinh nghiệm cá nhân tôi thì dùng Windows nào cũng được. Từ Vista, 7, 8 cho đến Server Essential (thay thế cho WHS 2011), 2K3, 2K8, hay 2012. Nhưng ổn định nhất (mà tôi cũng thấy nhiều người đang sử dụng là Windows 7 và Windows Server 2012). Tôi hiện đang dùng Server 2012 (vì cho nó giống như mấy cái server của tôi ở chỗ làm … hì..hì..)

Nếu bạn để ý thì sẽ thấy từ đầu đến giờ tôi phần nhiều hay dùng từ ‘hệ thống’ này ‘hệ thống’ nọ nghe có vẻ dao to búa lớn thay vì nói server cho nó gọn. Chỉ là một cái máy lưu trữ thôi chứ có gì đồ sộ lằng nhằng ghê gớm gì đâu mà dùng từ khủng để lòe thiên hạ? Đó là do tôi đã tính trước sợ các bạn sẽ bối rối hỏi tôi vậy server lưu trữ thì phải dùng Windows server thôi chứ không được dùng các loại Windows thông thường khác hả.

Có người bảo tôi Windows server với cơ chế họat động chuyên biệt của nó có thể không cần reboot trong nhiều ngày, thậm chí nhiều tháng. Tôi biết và đồng ý chuyện đó. Tuy nhiên tôi có người bạn đang dùng Windows 7 để lưu trữ (xin nhớ chỉ dùng thuần túy lưu trữ à nghen) thế mà hơn 6 tháng không cần reboot vẫn chạy ngọt ngào phà phà. Còn như nếu bạn còn dùng nó để search web, bittorent, mấy thứ linh tinh, thậm chí chơi game thì tình huống sẽ khác.

Windows 32 hay 64 bit không quan trọng hay ảnh hưởng nhiều, nhưng do việc tính toán RAID sẽ cần nhiều bộ nhớ (> 4GB nếu dung lượng lưu trữ nhiều) khi tính toán parity nên tốt nhất bạn nên cài loại 64 bit. Ngoài ra có nhiều bạn thích dùng remote desktop để truy cập vào máy từ xa (headless), trừ phi bạn sẽ dùng Windows Server, nếu dùng Windows 7 hoặc 8 thì lần cài lần khó ta nên “chơi lun” từ loại Pro trở lên.

2/ Phần mềm bảo vệ dữ liệu

Để bảo vệ dữ liệu, như đã nói ở phần trên, ngày nay phổ biến có 3 cách hoặc là dùng backup, hoặc là dùng RAID và hoặc là … dẹp đi hổng xài nữa nên không cần bảo vệ (cái này mới chế ra…). Nói đùa vậy thôi, ít thì được chứ nhiều dữ liệu quá (như phim HD chẳng hạn) thì dùng phương án backup rõ ràng là không hiệu quả rồi. Xin xem những hạn chế của backup trong bài “RAID bạn biết gì về nó”.

Còn đối với RAID thì sao? Lựa loại RAID nào? Để có được sự lựa chọn chính xác, tôi đã dùng phương pháp loại suy. 

Trước tiên là Hardware RAID. Anh này khỏe mạnh, nhanh nhẹn, gọn gàng rồi. Tuy nhiên vật cản lớn nhất là cái giá của nó. Vâng với cái giá chát như vậy khó lòng mà một người dùng gia đình với tới được. Hoặc giả có với tới được cũng … không ngu gì. Loại! 

Còn Fake (hay Host) RAID thì sao? Những giới hạn cố hữu của nó là: thứ nhất chết theo với firmware. Firmware của nhà sản xuất cho phép mình thiết lập RAID như thế nào thì phải theo y chang như thế ấy, nếu có gặp bug thì cũng ráng chịu. Khả năng bug được sửa vừa chậm vừa ít. Thứ hai là chết theo board (ở đây là motherboard và card board Sata rời). Giả như cái mainboard hay cái card Sata rời chán sống muốn quy tiên sớm, bạn còn không lo nhanh chân kiếm cái y chang vậy về thế liền. Nhưng nếu lỡ may hàng không có (sau vài năm hết nhập về vì không lời, hoặc nhà máy ngưng lâu rồi không sản xuất nữa), tôi chắc rằng sẽ có người đang kiếm cho mình sợi dây đặng treo cổ chết cho rồi! Vâng, loại luôn. 

Cuối cùng là software RAID. Nói về software RAID thì một rừng cũng không khác gì thị trường smartphone ngày nay vậy. Vấn đề là lục lọi trong đống hổ lốn đó thằng nào là thích hợp cho yêu cầu của mình mới là quan trọng: HTC One? iPhone 5S, Samsung Galaxy Note 3, hay Sony Xperia Z1…? Nếu như bên smartphones sẽ có sự tranh luận nảy lửa khi bênh vực cho loại phone mình đang xài thì bên software RAID cũng sẽ không khác gì.
Trên thị trường hiện nay ngoài những software RAID được viết chuyên sâu đặc biệt cho một phần cứng nào đó ví dụ như Synology, Qnap, Buffalo hay cao cấp hơn dùng cho các doanh nghiệp là EMC, NetApp, DataDomain,..., ta còn có các loại software RAID viết mang tính phổ thông, đa dạng và tính tương thích cao đối với đa phần các loại máy lưu trữ gia đình. Trong đó phải kể đến các bậc cao thủ đã và đang làm mưa làm gió như unRAID, ZFS, FlexRAID, disParity,SnapRAID, Storage Spaces, hay Btffs.

Dưới đây là bảng so sánh từng đặc điểm của chúng. 



III. Tiến hành thực hiện

Sau khi tốn mấy vài tháng ngồi thử nghiệm vài cái (chứ không thử hết) software RAID trong cái bảng trên, cuối cùng tôi quyết định chọn và rước em SnapRAID zìa dinh.

1/ SnapRAID

SnapRAID là một chương trình backup nhưng sử dụng phương thức gần tương tự như RAID. Nó ghi nhớ dữ liệu của bạn rồi chứa thông tin ấy vào parity để khi xảy ra sự cố mất dữ liệu nó sẽ sủ dụng parity để đối chiếu, phục hồi dữ liệu bị mất. Khả năng phục hồi có thể lên đến sáu ổ đĩa cứng bị hư hỏng cùng một lúc (cái này thì quá mức mong đợi của người dùng gia đình). Một điểm quan trọng nữa rất phù hợp với sở thích người Việt Nam đó là nó free. Khỏi phải tốn tiền mua hay phải dùng key lụi hoặc phá key hồi hộp.

SnapRAID được viết với mục đích chủ yếu nhắm vào các trung tâm lưu trữ dữ liệu giải trí truyền thông tại gia đình với rất nhiều các tập tin media lớn mà ít khi bị thay đổi.

Cho ai ham thích muốn tìm hiểu sâu hơn một chút về SnapRAID thì nhớ 2 điều này: Để kiểm tra tính toàn vẹn của dữ liệu, SnapRAID sử dụng thuật toán map data hiệu quả cao murmur3 và SpookyHash ở 128 bit. Còn đối với sự tính toán Redundancy, nó sử dụng thư viện lõi RAID của Linux (Linux Kernel RAID) cực nhanh hiện nay.

2/ Ưu điểm

Bên cạnh khả năng phục hồi dữ liệu từ lỗi của ổ đĩa, SnapRAID còn có các tính năng khác đáng chú ý như sau:

- Tất cả các dữ liệu của bạn được bảo vệ chống lại lỗi bit rot.
- Nếu có quá nhiều ổ cứng hư cùng lúc (quá 6 HDD), bạn chỉ bị mất những dữ liệu trên các ổ đĩa bị hư ấy mà thôi. Tất cả các dữ liệu trong các ổ đĩa khác vẫn an toàn.
- Nếu bạn vô tình xóa một số file trên một ổ đĩa, bạn vẫn có thể phục hồi chúng.
- Không cần biết cái ổ hiện đã có chứa dữ liệu hay không, bạn vẫn sát nhập vào SnapRAID để được bảo vệ một cách cô tư lự.
- Không quan tâm liệu các ổ đĩa chứa trong SnapRAID có thể có kích cỡ khác nhau.
- Bạn có thể nhập thêm ổ đĩa bất cứ lúc nào bạn muốn.
- Nó không bao giờ khóa trái dữ liệu của bạn lại. Nói cách khác, bạn có thể ngừng sử dụng SnapRAID bất cứ lúc nào mà không cần phải định dạng lại hoặc di chuyển dữ liệu.

3/ Hạn chế

Tôi thì thích sự minh bạch. Có mạnh thì nói mạnh, có yếu thì nói yếu chứ không theo cái kiểu lấp liếm giấu nhẹm nhử nhử người khác.
Bởi mang tính đặc thù của nó, SnapRAID không hẳn là một chương trình backup (mặc dù nó có khuynh hướng gần với backup hơn) mà cũng không hẳn là một RAID chỉ bởi vì nó cố gắng tận dụng lợi điểm tốt nhất của cả 2 phía mà thôi. Mặc dù vậy, nó cũng có một số hạn chế mà bạn nên xem xét trước khi sử dụng nó.

Một trong những yếu điểm chính của SnapRAID là nếu một đĩa cứng bị hư hỏng, và do bạn gần đây đã quên không chịu cập nhật parity, bạn có thể là không thể phục hồi những thay đổi của dữ liệu sau lần cập nhật cuối cùng. Cũng giống như khi bạn chụp hình vậy. Tại thời điểm chụp hình nhìn mặt lão ấy đang vui vẻ tươi cười bên cô bồ nhí trong căn biệt thự mà lão mua dành riêng cho cô ta. Nhưng sau ấy vài tháng lão giám đốc này bị tuyên "dựa cột". Sự thay đổi này không ai biết trước và lường được! Cái này thì ai làm backup nhiều lần và rành thì nói cái biết ngay. Nói cho cụ thể hơn, bạn có thể không thể phục hồi số lượng các tập tin đã thay đổi hoặc xóa từ các lần cập nhật cuối cùng. Điều này xảy ra ngay cả khi các tập tin (phim/ nhạc,…) thay đổi hoặc xóa không nằm trong đĩa cứng bị hư. Nên nhớ là các tập tin mới được thêm vào sẽ không cản trở việc phục hồi các tập tin đã có. Bạn thật ra chỉ mất các tập tin mới bỏ vào nếu chúng nằm trên đĩa cứng bị toi. Đây là lý do tại sao lúc đầu tôi nói là SnapRAID phù hợp hơn cho dữ liệu không bị thay đổi thường xuyên.

Những hạn chế khác là:

- Windows là windows, Linux là Linux, bạn không thể trộn lẫn mấy cái filesystem này với nhau trong SnapRAID (cái này là hiển nhiên thôi).
- Với standard RAID (tức Raid windows thường) bằng lần nó chạy là cả đám ổ cứng cùng chạy nên có thể tận dụng tốc độ của từng cái. Còn ở SnapRAID, do chỉ có một ổ cứng chạy tại một thời điểm, tốc độ của nó bằng chính tốc độ của ổ cứng đang chạy mà thôi (nhưng xem ra vẫn tốt chán). 
- Nó không hỗ trợ phục hồi trong thời gian thực. Với loại RAID thông thường, bạn không cần phải ngừng làm việc khi 1 đĩa cứng bị lỗi. Cái này đối với doanh nghiệp thì quan trọng, còn sử dụng trong gia đình thì có tốn ít thời gian sửa lỗi cũng không ăn thua gì mấy (ý kiến cá nhân).
- Không thể phục hồi thiệt hại về dữ liệu nếu số đĩa cứng bị hư cùng lúc vượt quá số đĩa cứng dự phòng cho phép.
- Nếu phục hồi thì chỉ có các file, timestamps, symlinks and hardlinks được cứu. Còn các permissions, ownership and extended attributes sẽ bị mất, đòi hỏi bạn phải cài đặt lại nếu cần thiết.


4/ Bắt đầu nhập tiệc.

Trước khi bắt đầu, tôi có một vài đều cần lưu ý tuy có vẻ rườm rà nhưng tôi thấy cần thiết không thể bỏ qua:

- Bạn phải có trách nhiệm tự kiểm tra lấy những gì mình làm và tự chịu trách nhiệm. Đừng quá tin vào lời tôi nói mà phải kiểm tra từng bước một (cái này tôi nhắc khá nhiều). Chỉ khi nào bạn cảm thấy đủ tự tin rồi khi ấy mới đem áp dụng vào dữ liệu thật của mình. Tôi biết dù có làm sai thằng SnapRAID cũng không phá nát hoàn toàn dữ liệu của bạn trong một cái click đâu, nhưng cẩn tắc vô áy náy. Cái gì cũng phải thử trước nha các bạn. Do it at your own risk.
- Như là một quy luật bất thành văn, khi sử dụng thành công một chương trình viết dựa trên mã nguồn mở, bạn phải có trách nhiệm (mặc dù không ai kiểm tra), loan báo, hướng dẫn lại cho những ai cần giúp nhằm tạo nên một cộng đồng dùng chung ngày càng lớn mạnh lên. Ai cũng có điểm yếu, điểm mạnh. Nếu chúng ta biết cộng hưởng các điểm mạnh lại thì cái lợi cho cộng đồng là lớn lao. Ai cũng được hưởng lợi, trong đó có cả chính bản thân mình.

Chuẩn bị ổ cứng cho parity

- Hệ thống RAID của SnapRAID cần dành riêng cho nó loại ổ cứng chỉ chuyên chứa các thông tin parity. Cách tính toán dành bao nhiêu ổ cho parity thì cũng giống như ở standard RAID. Với một đĩa pairty bạn sẽ có khả năng phục hồi trong trường hợp 1 ổ cứng bị hư (như RAID5). Còn nếu để có thể phục hồi dữ liệu khi có cả 2 ổ cứng bị hư cùng lúc, như RAID6, bạn phải dành thêm 1 ổ cứng parity nữa v..v… cho đến mức tối đa là 6 ổ cứng chuyên chứa thông tin parity.

Cách chứa giống và khác RAID thông thường như thế nào thì xem hình dưới




- Theo nguyên tắc, bạn phải chọn ổ đĩa lớn nhất trong RAID để làm ổ parity. Ví dụ bạn muốn lập RAID có 5 HDD trong đó 2 HDD là 2TB 2 HDD là 4TB và 1 HDD là 3TB, thì bạn phải lấy ra 1 ổ HDD 4TB làm parity để khi có bất kỳ ổ cứng nào chết thì ổ parity sẽ có thể bảo kê được. Còn nếu bạn dùng ổ cứng nhỏ thôi làm parity thì lỡ có thằng ổ lớn hơn chết thì ổ nhỏ làm sao chứa đủ thông tin parity của thằng ổ lớn hơn để cứu? Chiện này cũng bình thường thôi.
- Theo thống kê về xác xuất ổ cứng hư hỏng, người viết chương trình RAID khuyên cứ mỗi 5 đến tối đa 7 hard drives (cái này không phải nguyên tắc nhưng nên theo) thì bạn phải dành ra 1 hard drive để làm nơi chứa parity. Tôi có 35 ổ data, tức trên nguyên tắc phải có tối thiểu 5 ổ cứng chứa parity, nhưng tôi chỉ setup có 4 ổ 4TB thôi nên mỗi lần chạy tôi cứ bị SnapRAID nhắc nhở phải tăng thêm 1 ở cứng pairty hoài.
- Ổ parity phải nên là (không bắt buộc vì theo kinh nghiệm) ổ cứng có tốc độ nhanh nhất trong RAID, nhằm tránh tình trạng tốc độ tính toán parity bị thắt cổ chai thôi chứ không có gì.
- Ổ cứng parity, do làm việc nhiều và liên tục so với các ổ data, ta nên bố trí chúng ở những nơi mát nhất và đỡ rung lắc nhất trong case. Cái này cũng do kinh nghiệm tôi viết ra thôi.
- Ổ dùng làm parity nên là một ổ cứng mới, nói chung còn cứng cáp khỏe mạnh, ít chết bậy so với các ổ còn lại. Và dĩ nhiên nó phải là một ổ còn nguyên vẹn, không nên chứa bất cứ dữ liệu nào. Bởi khi thiết lập parity cho nó, SnapRAID sẽ xóa sạch sẽ mọi thứ trong đó ráng chịu nghen.

Nói nhiều quá, làm đi mới tin.

Trước tiên là ổ cứng chứa HĐH. Vì SnapRAID chạy trên nền OS của máy chủ, không có OS thì không thể chạy SnapRAID được, do đó SnapRAID không có khả năng bảo vệ ổ cứng chứa OS. Tôi khuyên các bạn dùng Ghost hay phần mềm tương tự để backup ổ cứng chứa HĐH. Vì tôi dùng ổ SSD chỉ có 90GB nên dùng cả ổ này chứa OS luôn. Tôi cũng khuyên là lỡ các bạn có chia parition ra thành C, D gì đó thì cũng dành cho thằng C drive đất đai dư giả một chút vì sau này sẽ có việc cần nó.

Xem hình cái ổ C của tôi một mình một chợ, không bị thằng nào con nào chen lấn.




Kế tiếp là ta tiến hành mount các ổ cứng data và parity lại. Bị vì số ổ cứng của tôi nhiều hơn số ký tự A,B,C,..Bạn không biết cách mount thì tìm tự tìm hiểu học (dễ lắm), còn lười thì nhờ ai đó chỉ giùm. Còn nếu sổ HDD của bạn ít, bạn không muốn mount cũng được và cứ đặt cho nó là E, F, G, H, ...

Hình 39 hard drives (trừ ổ chứa OS) đã được mount trong C:\mount folder. 




Nhớ là nếu ổ của bạn có trên 2TB thì nên chuyển qua định dạng GPT trước khi chép dữ liệu hoặc nhập vào RAID để OS nhận được hết dung lượng của nó. Ở đây chỉ cần nhớ một điều là khi Win hỏi có muốn Raid rác mấy cái ổ lại không thì phải từ chối liền. Đoàn kết thì tốt nhưng trong trường hợp này chia rẽ xem ra lại phẻ!

Còn trường hợp tôi phải mount vì thứ nhất bảng chữ cái alphabet chỉ tới Z là hết (tức 32 ổ) trong khi tôi có tới 40, nên ... kẹt! Thứ hai là khi vào My Computer tôi muốn thấy nó gọn gàng một chút. Chứ nhăng nhít đầy màn hình toàn là ổ với ổ nhìn nổ đom đóm mắt do đó dễ thao tác nhầm lẫn lắm. Đổi lại để biết tình trạng hiện tại của từng ổ (như tên ổ, dung lượng còn là bao nhiêu, ...) thì tôi phải vào Disk Management xem thôi. 







Tải chương trình SnapRAID version 8.0 dành cho máy 64 bit tại đây.





Tải chương trình SnapRAID version 8.0 dành cho máy 32 bit tại đây.





PM cho tôi nếu link bị die.
Vui lòng nhấn Thank để thấy link tải về không phải là tôi cần tăng số thank của mình lên đâu mà là thứ nhất tôi không muốn người ngoài diễn đàn thấy nó cách tình cờ. Hai nữa là tôi muốn biết số lượng người quan tâm đến software RAID này (nên đã tải xuống) từ đó nắm được số lượng cộng đồng hiện nay đang dùng RAID phát triển như thế nào. Vì số lượng càng nhiều sẽ hỗ trợ nhau càng nhanh và tốt hơn.

Trong chương trình này tôi đã lược bỏ bớt những file không quan trọng như giới thiệu tác giả, license, history, readme, …, đồng thời viết gọn lại để các bạn có thể hiểu và chỉnh sửa tùy theo nhu cầu và tình hình của từng máy mà mình có. Và quan trọng hơn là tôi đã test qua máy chạy tốt.
Còn nếu bạn nào vẫn không thích thì có thể lên thẳng website của SnapRAID mà down về cũng được.

Tạo một folder có tên là snapraid trong ổ đĩa C. Sau khi tải về, giải nén xong bạn sẽ thấy nó gồm có 3 files nhẹ hều mà thôi: 1 file chạy chương trình snapraid.exe, 1 file config là snapraid.conf.example (quan trọng vì bạn sẽ phải làm việc trực tiếp với nó), và 1 file snapraid.txt hướng dẫn trong trường hợp bạn bị kẹt hoặc khi bạn muốn tìm hiểu thêm. Bạn phải bỏ tất cả 3 file này vào trong cái folder snapraid vừa tạo.

Có một điều mà tôi đã quên nói là SnapRAID không chạy thường trực trên máy nên rất là đỡ tốn tài nguyên máy. Chỉ khi nào bạn muốn chạy thì run nó, còn không thì thôi. Chạy nó thì dễ không tưởng tượng nổi luôn vì toàn dùng câu lệnh DOS cụt ngủn từ cái thời tôi bắt đầu vọc máy 286 hay 386 của những năm 91/ 92 với floppy disk 5.25 inch to đùng.

Trước khi bắt tay vào làm cấu hình để SnapRAID chạy. Có vài khái niệm ta cần hiểu và nhớ chúng.

- File nội dung (content.lst): Đây là những tập tin sẽ chứa các chi tiết lúc bạn làm backup máy mình trong đó có tất cả các danh sách và checksum của tất cả các file dữ liệu để SnapRAID dùng kiểm ra và xác nhận sự toàn vẹn của dữ liệu đang được chứa trong máy bạn. Những file này bạn có thể config để lưu chúng trên các ổ cứng data, parity hay OS. Kinh nghiệm cá nhân cho thấy, ta nên lưu chúng ở data và OS drive. Vì những file này sẽ gia tăng dung lượng theo thời gian (do bạn sẽ bỏ thêm phim vào) nên có thể làm cho các parity drive bị đầy. 

Vậy sẽ có bao nhiêu content file đây? Thật ra, các file nội dung được tạo ra là như nhau. Nhưng vì lý do an toàn, chúng ta được khuyên là tạo ra file nội dung càng nhiều càng tốt. Trên nguyên tắc nó sẽ là con số ổ parity cộng thêm một (+1). Giả sử bạn sẽ thiết lập 2 ổ cứng parity thì ta nên thiết lập 3 content file trở lên. 

Bạn nên lưu từng content file trên các ổ cứng riêng biệt và nên nằm cách xa nhau trong case phòng trường hợp nhiều HDD dùng chung cọng 12V rail bị tèo thì cũng còn 1 content file sống sót nằm ở xó xỉnh nào đó ngoài cọng rail trên. Sẽ không ai chỉ cặn kẽ cho mình mấy cái vụ này đâu.

- Parity file: đây là những tập tin chứa các giá trị parity sau khi RAID được tính toán. Thằng này do to xác bự con nên thích một mình một chợ. Một ổ cứng parity chỉ được chứa đúng 1 file parity.par này thôi. Bạn không được lưu nó chung với data drive hay OS drive. 

Tiến hành lập cấu hình cho RAID

Đầu tiên bạn mở file snapraid.conf.example bằng notepad.

- Khai báo ổ cứng parity: giả sử bạn dùng ổ E làm parity

parity E:\parity.par

còn muốn thêm nâng cấp độ bảo vệ dữ liệu khi 2 ổ cứng hư thì ta có

parity E:\parity.par
2-parity F:\2-parity.par

Với F là ổ parity thứ 2, v..v…


- Khai báo các ổ cứng sẽ lưu chứa các file nội dung (content file)

content C:\snapraid\content.lst
content K:\array\content.lst
content L:\array\content.lst

Trong đó K và L ví dụ là data drive của bạn. Còn “array” là tên của folder nằm trong các ổ data chứa file của SnapRAID nhằm phân biệt với những folder phim, nhạc, dữ liệu cá nhân của bạn trong các ổ cứng data. Bạn muốn đặt cho nó là Tí, Tèo gì cũng được. Cứ 1 file nội dung thì làm một dòng. Nhớ đừng quên nguyên tắc số file nội dung sẽ là con số ổ parity cộng thêm một (+1).

- Khai báo ổ cứng data sẽ được dùng trong RAID

disk d1 K:\array\
disk d2 L:\array\
disk d3 M:\array\

nếu bạn có nhiều ổ cứng data hơn nữa thì cứ tiếp tục thêm dòng khai báo đến hết thì thôi. 

- Khai báo để loại ra không bảo vệ các dữ liệu hay thay đổi và không cần thiết.

# Defines files and directories to exclude
# Remember that all the paths are relative at the mount points
# Format: "exclude FILE"
# Format: "exclude DIR\"
# Format: "exclude \PATH\FILE"
# Format: "exclude \PATH\DIR\"
exclude *.unrecoverable
exclude Thumbs.db
exclude \$RECYCLE.BIN
exclude \System Volume Information
exclude \Program Files\
exclude \Program Files (x86)\
exclude \Windows\ 

Nếu bạn nào còn muốn không bảo vệ và loại đi các dữ liệu nào khác nữa thì có thể dùng hình thức tương tự như trên với đường dẫn cụ thể trên máy bạn.

- Khai báo block size của parity block khi tính toán RAID

block_size 256

mặc định là 256 kibibyte (KiB) hay 262144 byte cho máy có 4GB Ram trở lên. Trong trường hợp bạn không đủ RAM (2GB chẳng hạn) mà hiện đang kẹt chưa tiền mua, có thể nâng block size lên 516. Nhưng khi đó thì hên xui RAID có thể chạy không ổn định. Khi chạy bị báo thiếu RAM, càng sớm càng tốt nên nâng cấp RAM. Trung bình cứ 10TB dữ liệu thì cần 1GB RAM.

- Tự động save lại trạng thái trong quá trình cập nhật RAID

autosave 500

Để tránh RAID phải tính toán lại từ đầu khi máy chủ bị tắt đột ngột trong khi cập nhật RAID, ta dùng autosave với giá trị mặc định là 500 GiB. Tức sau khi tính toán Raid được 500 GiB, thì nó lưu trạng thái lại. Nó bị disabled khi giá trị cài đặt là 0.


Xong rồi, nói từ từ từng chút một thì thấy dông dài ngán ngẩm, chứ nếu bạn làm qua một lần hiểu rồi thì hổng chừng hút chưa tàn nửa điếu thuốc đã cấu hình xong cái file config này rồi.

Tóm lại, giả sử rằng bạn đang muốn thiết lập RAID để bảo vệ dữ liệu trong trường hợp có 1 ổ đĩa cứng bị hư hỏng, khi đó file config sẽ có nội dung nhìn như thế này:

parity E:\parity.par
content C:\snapraid\content.lst
content F:\array\content.lst
content G:\array\content.lst
disk d1 F:\array\
disk d2 G:\array\
disk d3 H:\array\
exclude *.unrecoverable
exclude Thumbs.db
exclude \$RECYCLE.BIN
exclude \System Volume Information
exclude \Program Files\
exclude \Program Files (x86)\
exclude \Windows\
block_size 256
autosave 500

với ổ C chứa HĐH, ổ E là ổ pairty, các ổ F, G, và H là ổ chứa data dữ liệu, dùng block size là 256 GiB và cứ sau khi xử lý được 500 GiB thì sẽ lưu trạng thái RAID lại.


Cuối cùng, bạn save file config này lại. Nhớ đừng quên đổi tên của file từ “snapraid.conf.example” thành “snapraid.conf” nha. Nếu không thằng SnapRAID nó chả hiểu file có đuôi .example là cái khỉ khô gì. :0

Thế là xong, lúc này bạn đã sẵn sàng để bắt đầu chạy SnapRAID cho việc xây dựng RAID của máy mình lần đầu tiên.

Vào màn hình DOS với quyền quản trị admin, bạn gõ dòng lệnh

snapraid sync

(dĩ nhiên là bạn lệnh từ thư mục snapraid của ổ C)

Xong rầu, phẻ, ra làm ly cờ phơ đớ cho mát cái cuống họng trong lúc chờ hè

Quá trình này có thể mất từ vài chục phút đến vài tiếng tùy thuộc vào dung lượng của dữ liệu đang có trong các ổ đĩa. Nếu các ổ cứng của bạn còn trinh zin chưa có một tí ti dữ liệu nào thì quá trình này gần như kết thúc ngay lập tức.

Ngoài ra, khi chương trình đang chạy, gặp bạn bè tới rủ ra ngoài quán làm vài ve, bạn có thể dừng nó lại bất cứ lúc nào bằng cách nhấn tổ hơp phím Ctrl + C. Rồi sau khi tối khuya chân nam đá chân xiêu quá đã ngật ngưỡng về nhà, bạn có thể bắt đầu tiếp tục lại từ nơi bị gián đoạn với câu lệnh y chang lệnh lúc nãy.

Một khi lệnh này được hoàn tất, kể từ nay dữ liệu của bạn được an toàn. An tâm ngủ khỏe cho tới sáng.




Và cũng tại thời điểm này, sau mỗi lần bạn thêm hay xóa phim, nhạc (thường là thêm chứ ngu gì xóa), bạn phải cập nhật tình trạng dữ liệu hiện có cho RAID biết ngay lập tức để bảo vệ mấy bộ phim hay vừa được nhập vào bộ sưu tầm của mình cũng in hệt như lệnh trên.

Chúc các bạn may mắn và gặt hái thành công.


5/ Khôi phục dữ liệu


Ở trên chỉ là các bước chụp hình lại dữ liệu của chúng ta dưới dạng các thông tin parity rồi lưu chúng mà thôi. Thế còn khi dữ liệu bị mất thật sự thì phục hồi lại như thế nào? 

Hồi tối hôm qua trong một lúc tình cờ thoáng gặp một gã to gan nào đó đang chở con bồ của mình. Về nhà mặt mày tím tái, hơi thở hổn hển, tay chân run lên cầm cập. Gọi phone cho ra nhẽ cả tỉ lần gấu cũng không chịu nghe phone. Điên tiết mở máy ra bao nhiêu hình ảnh 2 đứa chụp chung hôm đi chơi Noel đem ra xóa sạch. Hôm nay vỡ lẽ ra sau lớp học đêm về, xe em bị hư phải gọi Bố ra sửa và chở về. Thế có bỏ bu không. Tối qua trong lúc nghiến răng xóa mấy tấm hình, chơi lun Shift+del mới chết chứ lị. Giờ em lại đang đòi mấy tấm ảnh hôm tiệc Noel để post lên Facebook khoe chúng bạn, không biết tính làm sao đây? 

SnapRAID sẽ là cứu tinh của bạn đấy.

Như tôi nói ở đầu, trong việc khôi phục dữ liệu, SnapRAID có khuynh hướng nghiêng về chương trình sao lưu hơn một hệ thống RAID. Và vì vậy, nó có thể được sử dụng để khôi phục lại hoặc phục hồi chỉ một tập tin duy nhất hoặc thư mục ở trạng thái trước đó bằng cách sử dụng tùy chon -f 

snapraid fix -f FILE

hoặc cho một thư mục :

snapraid fix -f DIR/


Bạn cũng có thể sử dụng nó để phục hồi những file mà bạn vô tình xóa trong một thư mục bằng cách sử dụng tùy chọn –m. Tức là nó chỉ phục hồi các file bị mất , còn những cái khác không bị ảnh hưởng gì.

snapraid fix -m -f DIR/

Hoặc để phục hồi tất cả các tập tin đã xóa trong tất cả các ổ đĩa với :

snapraid fix –m


Và khi điều tồi tệ nhất đã xảy ra, vì một lý do nào đó bạn mất hẳn toàn bộ 1 ổ đĩa và bạn muốn khôi phục nó thì sao?

Đừng hoảng sợ ! Bạn có thể sẽ khôi phục lại nó dễ dàng.

Điều đầu tiên bạn phải làm là tránh thay đổi hơn nữa đối RAID của bạn.
Vô hiệu hóa bất kỳ kết nối từ xa (remote connection) với nó, tắt bất kỳ các chương trình chạy tự động được lên kế hoạch đối với SnapRAID, đặc biệt là nhiều người hay chạy lệnh sync vào ban đêm.

Sau đó tiến hành các bước sau đây:

Bước 1 - Cấu hình lại
-------------------------

Bằng cách nào đó, bạn cần có một nơi để chứa những dữ liệu trong ổ bị hư trong lúc phục hồi lại chứ? Nói trắng ra kiếm cái ổ cứng khác có dung lượng bằng hoặc nhiều hơn cái ổ bị hư để phục hồi, kẹt quá thì chơi tạm một em USB gắn ngoài cũng được.

Thay đổi tập tin cấu hình (config file) sao cho lần này ổ cứng bị hư chỉ vào ổ cứng mình vừa mới thay.

Ví dụ, nếu bạn có đĩa " d1 " bị toi, bạn có thể thay đổi :

đĩa disk d1 F:\array\

để thành:

đĩa disk d1 new_spare_disk 

"new_spare_disk" là đường dẫn của ổ cứng mới vừa thay vào.


Bước 2 - Sửa chữa
-----------------

Chạy lệnh sửa , đồng thời lưu log file thành một tập tin bên ngoài :

snapraid -d NAME -l fix.log fix

Với NAME là tên của ổ đĩa , như " d1 " như trong ví dụ trên.

Lệnh này sẽ mất một thời gian dài để tính toán và sửa.

Lưu ý ở đây là tập tin fix.log sẽ có thể chiếm khoảng vài GB trong thư mục SnapRAID tại ổ C. Đó là lý do tại sao lúc đầu tôi có nói nên đất nhiều nhiều cho ổ C drive là vậy. 


Bước 3 - Kiểm tra lại
-------------------

Bây giờ bạn có thể chạy một lệnh kiểm tra để đảm bảo rằng tất cả mọi thứ là OK trên đĩa.

snapraid -d NAME -a check

Ở đây NAME là tên của ổ đĩa , như " d1 " trong ví dụ trước.

Các tùy chọn -d và –a dùng để yêu cầu SnapRAID chỉ kiểm tra ổ đĩa được xác định, và không đụng tới tất cả các thông tin parity.

Cũng vậy lệnh này sẽ mất một thời gian chạy khá dài .


Bước 4 – Cuối cùng là Sync
------------------

Chạy lệnh sync để đồng bộ lại tất cả các dữ liệu vừa mới được phục hồi trên một RAID mới.

snapraid sync

Nếu tất cả mọi thứ được phục hồi tốt, lệnh này chạy và kết thúc rất nhanh.


6/ Bảo trì dữ liệu – RAID

SnapRAID cung cấp cho ta một lệnh hết sức quý giá dùng để kiểm tra xem liệu phim, nhạc và các thông tin parity của chúng ta lâu ngày có bị lỗi hư hỏng âm thầm hay không. Nếu bạn không biết loại lỗi này là gì, xin đọc bài "Bit rot – Kẻ sát thủ vô hình của dữ liệu HD".
Đó là lệnh scrub.


Snapraid scrub


Mặc định là nó kiểm ra theo tỉ lệ xác xuất 12% của toàn hệ thống RAID trong thời điểm 10 ngày trở về trước.
Bạn có thể dùng tùy chọn “–p” để tăng hoặc giảm số % này, cũng như dùng tùy chọn “-o” để gia giảm số ngày.
Ví dụ bạn muốn kiểm tra bất chợt 10% những dữ liệu mà cả tháng nay (30 ngày) chưa đụng tới xem coi dữ liệu của mình có bị mối mọt gì không:


snapraid – 10 –o 30 scrub


Nếu nó tìm thấy một vài lỗi hư hỏng ngầm (silent error), nó sẽ lốc chúng lại và đánh dấu “bad” trong file nội dung. Bạn cũng có thể thấy nó được bằng cách dùng câu lệnh


snapraid status


Còn để fix những lỗi này, bạn cũng dùng lại lệnh fix thôi


snapraid –e fix


Sau khi được fix, bạn cũng có thể chạy lại lệnh scrub xem xem nó thực sự được fix hay chưa. Bạn nên dùng tùy chọn –p 0 để chỉ kiểm tra những block đã bị đánh dấu “bad” lúc trước.


IV. Lời kết

Ở trên là những lệnh và tùy chọn đơn giản nhưng hữu hiệu sẽ được bạn sử dụng nhiều hàng ngày khi làm việc với SnapRAID. Còn một vài lệnh và tùy chọn nữa nếu bạn muốn tìm hiểu sâu thêm thì vào tập tin snapraid.txt tham khảo.

Tóm lại, theo ý kiến cá nhân, tôi thấy SnapRAID khá gọn nhẹ và đặc biệt là bảo vệ khá hiệu quả các dữ liệu có dung lượng lớn (thích hợp cho phim HD và nhạc FLAC/WAV, ...) ít khi bị thay đổi di dời. Bản thân tôi cũng chưa có điều kiện, cũng như thời gian nhiều để thử nghiệm những độc chiêu mà SnapRAID mang lại. 

Cũng qua bài viết này, tôi trước tiên xin gửi lời tri ân và cảm tạ đặc biệt dành cho ông Andrea Mazzoleni (người Ý) đã bỏ ra rất nhiều công sức ròng rã gần 3 năm nay viết và phát triển chương trình này. Không những cung cấp cho chúng ta một phần mềm RAID miễn phí đầy hữu ích, ông còn tiếp tục phát triển nó cũng như hỗ trợ tư vấn cho tất cả mọi người trên tinh thần vô vụ lợi cao cả. Thank you and much appreciate it.

Tôi cũng không quên cám ơn tất cả các bạn, bằng cách này hay cách khác đã động viên, hỗ trợ tinh thần tôi rất nhiều bằng những cái thanhk, những lời cám ơn mộc mạc nhưng chân thành đáng quý, thậm chí còn gửi tặng Cr nữa. Dĩ nhiên mục tiêu của tôi không phải là những cái bấm thank hay Cr, nhưng qua đó tôi cũng hiểu sâu sắc được rằng công sức tôi bỏ ra chắc chắn không bị phí bỏ.

Cũng trên tinh thần sharing, tôi cũng kêu gọi các anh em người biết nhiều, người biết ít chúng ta nên thường xuyên lên diễn đàn và cùng giúp đỡ nhau để cộng đồng HD ngày càng mạnh lên.

Một lần nữa, xin cảm ơn tất cả các bạn và xin đón đọc phần 3 về quản lý dữ liệu HD như thế nào.

Thanksforsharing@HDVietnam
    Blogger Comment
    Facebook Comment