Thứ Bảy, 19 tháng 7, 2014

Data corruption (hư hỏng dữ liệu) là gì và làm thế nào chúng ta có thể hạn chế nó?

Du_lieu_hong_1.

Data corruption (tạm dịch: hư hỏng dữ liệu) là một trong những lỗi thường gặp nhất khi sử dụng máy tính. Nếu như bug sinh ra do việc thực thi các mã lệnh không đúng như dự định ban đầu thì data corruption xuất hiện khi một chương trình máy tính thay đổi dữ liệu sang một dạng khác, dù là vô tình hay cố ý. Dữ liệu khi bị hỏng có thể bị ngẫu nhiên hoặc có hệ thống, và ngay cả một thay đổi nhỏ trong cấu trúc file cũng có thể khiến cho một tập tin hay một phần mềm nào đó trở nên vô dụng. Trong bài này, xin chia sẻ với các bạn lý do vì sao data corruption lại diễn ra và làm cách nào chúng ta có thể giảm thiểu nó.

Những lý do gây ra hư hỏng dữ liệu

Môi trường mà chúng ta đang sinh hoạt thường ngày không phải là một chỗ lý tưởng để dữ liệu "sinh sống". Ngay cả một nguyên tử tự do trong không khí cũng có thể khiến bit dữ liệu lưu trên bộ nhớ chuyển từ giá trị 1 sang 0 và làm hỏng dữ liệu ngay cả khi máy tính đang tắt. Còn nếu nhìn ra những thứ "to" hơn một chút thì cũng có hàng tá lý do về mặt vật lý có thể thay đổi cấu trúc dữ liệu: đĩa từ mất đi hướng từ tính, các thiết bị lưu trữ mất điện, hay đĩa quang bị xước hoặc hỏng. Nói cách khác, dữ liệu số lưu trong các thiết bị mà chúng ta sử dụng thường ngày hoàn toàn có thể hư hỏng bởi những lý do khách quan và chủ quan mà chúng ta khó lòng kiểm soát được hết. Ngay cả HDD, SSD, ổ đĩa mềm, đĩa CD... cũng có thể hư hỏng sau một thời gian đủ lâu kia mà.

Hard-Disk-Drive-1.

Ngoài ra, bản thân người dùng cũng có thể là tác nhân gây ra hư hỏng dữ liệu. Ví dụ, bạn xóa đi một vài tập tin quan trọng nào đó khiến Windows hay phần mềm ưa thích của bạn không thể chạy lên được, hoặc bạn buồn buồn mở file exe lên bằng Notepad rồi xóa đi vài chỗ trong đó thì cũng gây ra tình trạng tương tự. Những phần mềm mã độc (malware) hay virus cũng có thể khiến cho những tập tin quan trọng bị hỏng vì chúng sẽ chỉnh sửa và thêm vào một số bit khiến file không thể được mở ra, tình trạng này đã từng làm nhiều người dùng khổ sở vài năm về trước.

Dù cho nguồn lỗi bắt đầu từ đây thì chúng ta có thể chia data corruption thành hai loại: có thể phát hiện và chưa được phát hiện. Loại đầu tiên thường xảy ra thường xuyên hơn nhưng mức độ nghiêm trọng không cao, còn loại thứ hai có thể khiến cả hệ thống bị sập, dữ liệu không thể được khôi phục, hoặc tệ hơn nữa là hư hỏng cả hệ điều hành.

Hư hỏng được phát hiện

Loại hư hỏng này có nghĩa là người dùng ít nhất biết đến nó, họ biết rằng đang có vấn đề xảy ra. Ví dụ, bạn có thể mở một tập tin ảnh và phân nửa bên dưới bị biến đổi với các sọc ngang đủ màu, hoặc mở một file Word nhưng Word lại báo là không đọc được tập tin. Với vấn đề dễ thấy như thế, ít nhất chúng ta biết là file đang bị lỗi để có thể chọn giải pháp như tải lại bức ảnh đó hoặc chạy phần mềm sửa lỗi.

Quan trọng hơn, kiểu hư hỏng đã được phát hiện thường là những vấn đề nhỏ. Một tập tin có thể bị mất, một sector trên đĩa cứng có thể bị bad và cần sửa chữa, hoặc một ứng dụng nào đó chạy không như ý muốn, chúng đều là những thứ có khả năng phục hồi được và quy mô ảnh hưởng cũng không rộng. Ngay cả khi chúng dẫn đến những rắc rối lớn hơn thì ít ra người dùng có thời gian để khắc phục.

Hư hỏng không được phát hiện (còn gọi là hư hỏng âm thầm)

Dù là gì đi nữa thì hư hỏng xảy ra đều có nguy nhân, vấn đề là nguyên nhân đó có được phát hiện hay không. Chúng ta có thể coi hư hỏng dữ liệu như là căn bệnh ung thư của máy tính. Nếu phát hiện sớm thì việc điều trị sẽ dễ dàng hơn, còn nếu phát hiện quá trễ thì lỗi có thể nhân rộng và đến một thời điểm nào đó thì mọi việc cứu chữa hệ thống đều trở nên vô dụng. Đó chính là những hư hỏng không được phát hiện, và chúng nguy hiểm vô cùng.

Ví dụ, nguồn điện của bạn có thể bị chập chờn, và nó khiến cho ổ đĩa cứng của chúng ta chạy ở điện thế thấp hơn mức thiết kế. Khi những sự kiện này diễn ra thường xuyên thì nó sẽ tạo ra các bad sector trên thiết bị lưu trữ. Nếu bad sector hiện diện tại những ổ lưu tài liệu, hình ảnh linh tinh thì còn đỡ, nhưng nếu chúng ảnh hưởng đến khu vực chứa dữ liệu của hệ điều hành hay driver thì mọi chuyện sẽ trở nên tồi tệ. Vào một ngày đẹp trời bạn mở máy tính lên và chỉ thấy màn hình xanh chết chóc, làm mọi cách máy cũng không thể vào được đến màn hình chào mừng, thế là phải đi cài lại Windows. Tệ hơn nữa, ngay cả khi bạn xách HDD đến một dịch vụ phục hồi chuyên nghiệp thì cơ may họ phục hồi được cho bạn cũng là rất ít nếu không muốn nói là không thể.

hdtunebadsectors.

Cũng có thể lỗi do nhà sản xuất để lại một hạt bụi trong ổ đĩa của bạn, khi đĩa từ quay thì hạt bụi này sẽ làm trầy bề mặt và khiến cho đầu đọc không thể nhận biết dữ liệu trên đó. Cũng có thể một con virus nào đó đã âm thầm chỉnh sửa tập tin, hoặc với SSD thì do ổ đã đạt đến số lần đọc/ghi nhất định nhưng bạn không để ý.

Dù gì đi nữa thì hư hỏng không được phát hiện vẫn rất nguy hiểm, và chúng thường có chung kết cuộc: chỉ khi nào file hoặc hệ thống lưu trữ bị hỏng thì chúng ta mới biết là có vấn đề, và thường khi đó đã quá muộn.

Nói tóm lại, có vài lý do phổ biến gây ra hư hỏng dữ liệu như sau:
  • Mất điện đột ngột hoặc các vấn đề khác liên quan đến điện năng
  • Shutdown máy tính không đúng quy trình, shutdown đột ngột (do mất điện hoặc nhấn giữ nút nguồn để tắt máy)
  • Lỗi phần cứng: HDD/SSD bị hư hỏng, bad sector, RAM hỏng và những thứ tương tự như thế
  • Rút ổ cứng và các thiết bị lưu trữ nói chung mà không ngắt nguồn của chúng hoặc khi việc chuyển tải dữ liệu chưa kết thúc
  • Virus, phần mềm mã độc và những tác nhân liên quan đến phần mềm.
Vậy là chúng ta đã biết về sơ lược nguyên nhân gây ra data corruption, vậy làm thế nào để hạn chế tình trạng đó xảy ra?

Một số giải pháp

Có kế hoạch sao lưu thường xuyên

Đây là giải pháp tương đối dễ áp dụng và cũng khá an toàn. Khi bạn sao lưu dữ liệu của bạn, nếu dữ liệu trên máy tính bị hỏng thì ít ra chúng ta cũng còn dữ liệu chứa trong ổ rồi để phục hồi lại. Ngoài việc sử dụng các biện phép sao chép truyền thống, bạn có thể xài thêm những phần mềm hỗ trợ backup để quá trình sao lưu có thể diễn ra tự động, đỡ mất công chúng ta ngồi làm tay, ví dụ như File History có sẵn trong Windows 8, Time Machine trong OS X, hoặc vài app bên thứ ba như AOMEI Backupper. Nếu bạn có mua HDD/SSD rời, hãy lục tìm trong ổ cứng xem, thường nhà sản xuất hay tặng kèm phần mềm sao lưu tự động cho chúng ta đấy.

File_HIstory.

Một giải pháp nữa để sao lưu dữ liệu, và cũng khá an toàn, đó là đưa dữ liệu lên "mây" thông qua những dịch vụ như Dropbox, Box, OneDrive, Google Drive... Hiện tại mình đang xài Dropbox để lưu tất cả mọi tài liệu quan trọng, và nhờ tính năng tự động đồng bộ của nó mà file có thể vừa hiện diện trên máy tính của mình y như bình thường và vừa được sao lưu lên mây (các dịch vụ khác cũng có tính năng tương tự, không phải lo). Nếu ổ cứng bị bad sector (và đã bị rồi), mình chỉ việc lên Dropbox tải tập tin đó về là xong.

Xin nhắc lại: ĐỪNG LƯỜI SAO LƯU! Dữ liệu là vô giá. Hệ điều hành có thể cài lại được, game, ứng dụng có thể cài lại được, nhưng những tấm ảnh chụp gia đình, tài liệu làm việc, hồ sơ bản thân, giấy chứng nhận các loại... là vô giá, bạn sẽ không cách nào có lại chúng một khi đã mất đâu nhé.

Kiểm tra tình trạng ổ cứng

Bạn có thể kiểm tra sức khỏe ổ cứng của mình bằng cách đọc dữ liệu S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) của HDD. Chúng ta có rất nhiều phần mềm có thể làm được chuyện này, ví dụ như HD Tune. Bạn chỉ cần phiên bản miễn phí của app này thôi là đã có thể đọc được dữ liệu S.M.A.R.T rồi. Những phần mềm khác bạn có thể tham khảo qua đó là HDDScan và Crystal Disk Info.

Vậy thông tin nào chúng ta cần lưu ý? Theo một nghiên cứu của Google thì thứ mà bạn cần theo dõi đó là các thông số về scan/read/write error (lỗi khi scan), reallocation (số ô được tái phân bổ dữ liệu khi phát hiện bad sector) và những thông tin về bad sector. Các thiết bị lưu trữ có những thông số này ở mức cao thường dễ xảy ra lỗi hơn. Bạn có thể tham khảo chi tiết các thông tin được cung cấp bởi S.M.A.R.T tại đây: http://en.wikipedia.org/wiki/S.M.A.R.T. (lưu ý: trong bảng mô tả, các dòng tô màu đỏ là thông tin có thể chỉ ra những lỗi liên đến cơ-điện tử)

HD_Tune.
Một cách đơn giản hơn đó là bạn có thể dùng công cụ quét và sửa lỗi có sẵn trong Windows. Để chạy nó lên, bạn vào My Computer (hoặc This Computer với Windows 8), nhấp phải chuột vào ổ đĩa cần quét, chọn Properties > thẻ Tools > Error-checking > Check Now. Nếu phát hiện có vấn đề xảy ra và Windows có thể sửa được thì nó sẽ giúp bạn. Trong những trường hợp HDD không thể đọc ghi dữ liệu, hoặc bút nhớ USB đột nhiên mất định dạng thì tính năng Error-checking sẽ giúp mọi thứ trở lại bình thường. Chính nó cũng đã từng cứu mình nhiều bàn thua trông thấy.

Phòng chống virus

Vấn đề này nói hoài nói mãi cũng chán, nhưng nỗi "đau thương" do virus hay malware để lại thì chưa bao giờ là nhỏ. Những phần mềm độc hại có khả năng thay đổi cấu trúc tập tin chính là những phần mềm nguy hiểm nhất, nguy hiểm hơn cả những thứ có thể làm hệ thống bị treo hay khởi động lại liên tục, bởi khi đó bạn đang mất đi dữ liệu của mình. Với người dùng những hệ điều hành hiện đại như Windows 8, OS X 10.9 thì vấn đề này không phải là một chuyện quá lớn bởi các hãng đã tích hợp nhiều công cụ phòng chống mã độc, nhưng nếu có thể, bạn hãy cân nhắc đến việc sử dụng một phần mềm chống virus nào đó.

Kaspersky-Anti-Virus.

Những bộ app anti virus miễn phí cũng xuất hiện khá nhiều, nhưng hiệu năng thì thường app trả phí sẽ tốt hơn trong việc tìm và phát hiện các nguy cơ bảo mật. Hiện nay giá bản quyền cho các phần mềm antivirus ở Việt Nam không đắt, chỉ tầm 300.000 đồng cho một năm sử dụng mà thôi, nên việc mua bản quyền xài cũng đã dễ chịu hơn vài năm trước rất nhiều.

Sử dụng UPS và ổn áp với máy tính để bàn

Như đã nói ở trên, nguồn điện không ổn định hoặc tình trạng mất điện đột ngột có thể là nguyên nhân dẫn đến data corruption. Chính vì thế, nếu bạn đang sử dụng máy tính để bàn, đừng tiếc tiền sắm một cái ổn áp và một cái UPS cho nó. Ổn áp giúp điều hòa dòng điện đi từ ổ cắm trên tường vào hệ thống, còn UPS thì giúp máy chúng ta không tắt đột ngột khi bị cúp điện (mà các bạn cũng biết đó, việc cúp điện ở Việt Nam chúng ta là thường xuyên và không báo trước). Hai thứ này bạn có thể dễ dàng tìm mua tại các tiệm bán đồ điện gia dụng và tiệm bán linh kiện máy tính.

Nâng cấp phần cứng

Giải pháp này thì không khuyến khích áp dụng vì chi phí khá cao, nếu túi tiền rủng rỉnh thì bạn hãy nghĩ đến chuyện đó. Thứ mà mình muốn đề xuất ở đây đó là sử dụng RAM ECC, tức là loại RAM có khả năng phát hiện và thậm chí là tự sửa chữa các lỗi do xung đột từ bên ngoài. Tuy nhiên, để xài được tính năng ECC thì chúng ta sẽ phải mua mainboard có khả năng tương thích, và thường giá bán của chúng không rẻ tí nào.

Bạn cũng có thể cân nhắc chỉ nâng cấp ổ HDD hoặc SSD mà thôi, tức là chuyển từ ổ bình thường sang ổ dùng cho các doanh nghiệp. Những loại ổ này được đánh giá là bền hơn, các linh kiện cấu tạo bên trong cũng được sản xuất ở tiêu chuẩn cao hơn, khắt khe hơn nhằm đáp ứng nhu cầu nghiêm ngặt của các công ty, tổ chức. Tuy nhiên, dù là ở cấp doanh nghiệp đi nữa thì data corruption vẫn hoàn toàn có thể xảy ra, có điều xác suất sẽ thấp hơn.

Kết

Dữ liệu hỏng là chuyện khó mà tránh được hoàn toàn. Câu hỏi không phải là liệu nó có xảy ra hay không, mà là khi nào thì nó xảy ra, và bạn sẽ làm gì trong trường hợp đó. Tất cả những giải pháp mình đề xuất bên trên đều có tác dụng giảm thiểu tác hại của data corruption đến mức thấp nhất có thể chứ không cách gì loại bỏ được hết những nguy cơ cả. Hi vọng chúng sẽ giúp bạn giảm được các tổn thất liên quan đến dữ liệu hỏng, và nếu bạn có biết thêm biện pháp gì nữa thì hãy chia sẻ với mọi người nhé.

Tham khảo: MakeUseOf, Wikipedia, XLab