Trong thử nghiệm này dữ liệu đƣợc thu thập vào quý 1 năm 2019 làm dữ liệu để huấn luyện, dữ liệu quý 3 năm 2019 làm dữ liệu để kiểm tra từ backblaze (một trong những trung tâm dữ liệu quy mơ lớn và hiện đại). Việc thu thập dữ liệu từ các ổ cứng đƣợc tiến hành bằng cơng cụ Smartmontools. Cơng cụ gĩi Smartmontools chứa hai chƣơng trình tiện ích (smartctl và smartd) để điều khiển và giám sát hệ thống lƣu trữ bằng Hệ thống cơng nghệ tự giám sát, phân tích và báo cáo (SMART) đƣợc tích hợp trong hầu hết các đĩa ATA / SATA, SCSI / SAS và NVMe hiện đại. Trong nhiều trƣờng hợp, các tiện ích này sẽ cung cấp cảnh báo nâng cao về sự xuống cấp và hỏng đĩa. Smartmontools ban đầu đƣợc bắt nguồn từ Linux SmartSuite và hỗ trợ thực thi trên các ổ cứng ATA / SATA, SCSI / SAS và NVMe đĩa và ngồi ra ổ đĩa băng SCSI/SAS. Ngồi ra Smartmontools cĩ thể hoạt động trên hầu hết các hệ thống nhƣ: Linux, FreeBSD, NetBSD, OpenBSD, Darwin (macOS), Solaris, Windows, Cygwin, OS/2, eComStation hoặc QNX hiện đại. Smartmontools cũng cĩ thể đƣợc chạy từ một trong nhiều Đĩa CD / DVD trực tiếp. Cấu trúc dữ liệu thu thập đƣợc từ Blackblaze thơng qua 6 số liệu SMART để dự báo một ổ đĩa bị lỗi sắp xảy ra cụ thể:
SMART 5 Reallocated Sectors Count
Số lƣợng phân bổ lại của các Sectors
SMART 187 Reported Uncorrectable Errors
Báo cáo lỗi khơng thể sửa SMART 188 Command Timeout Hết giờ lệnh
SMART 197 Current Pending Sector Count
Số lƣợng hàng đợi đang chờ xử lý
SMART 198 Offline Uncorrectable Số lƣợng hàng đợi khơng chính xác
SMART 12 Power Cycles Chu kỳ điện
59
Trong đĩ các thơng số SMART nhƣ SMART 5, SMART 187, SMART 188, SMART 197, SMART 198 là các thơng số SMART chính để dự đốn việc một ổ cứng cĩ bị lỗi hay khơng. Ngồi ra để tăng độ chính xác cho việc dự báo đã đƣa thêm một thơng số SMART 12 (chu kỳ điện) để tính tốn khả năng lỗi của một ổ cứng.
Ví dụ tỷ lệ phần trăm của cả hai đĩa cứng hoạt động tốt và khơng hoạt động tốt thơng qua các số liệu thống kê SMART nhƣ sau:
Driver Status SMART 5 SMART 187 SMART 188 SMART 197 SMART 198
Operational 1.1 % 0.5% 4.8% 0.7% 0.3%
Failed 42.2% 43.5% 44.8% 43.1% 33.0%
Bảng 3.2 Ví dụ tỉ lệ phần trăm của hai đĩa cứng thơng qua số liệu thống kê SMART
Cấu trúc dữ liệu thu thập từ Backblaze quý 1 năm 2019 [13]:
Hình 3.1 Dữ liệu mẫu
Trong dữ liệu thu thập đƣợc cĩ nhiều trƣờng nhƣ: date, serial_number, model, failure, smart_5_normalized, smart_5_raw, smart_12_normalized, smart_12_raw, smart_187_normalized, smart_187_raw, …v.v. Nhƣng ta chỉ quan tâm đến các trƣờng Smart5, Smart 12, Smart 187, Smart 188, Smart 197, Smart 198 để đánh giá ổ cứng cĩ thể bị hỏng hay khơng.
60 - Với mơi trƣờng Pandas:
Bƣớc 1: Nhập thƣ viện Pandas
import pandas as pd
Bƣớc 2: Cho máy học dữ liệu training.
df_train = pd.read_csv(r"C:\Users\Administrator\Desktop \data\train.csv",encoding='utf-8')
Bƣớc 3: Cho máy học dữ liệu test.
df_test = pd.read_csv(r"F:\501048_928122_bundle_archive
\data_Q3_2019\data_Q3_2019\2019-09-28.csv",encoding='utf-8')
Hình 3.2: Input thƣ viện và cho máy học dữ liệu training và dữ liệu test trên mơi trƣờng Pandas.
- Với mơi trƣờng Spark: Bƣớc 1: Nhập thƣ viện Spark import findspark findspark.init() findspark.find() import pyspark findspark.find()
Bƣớc 2: Cho máy học dữ liệu training.
df_train = pd.read_csv(r"C:\Users\Administrator\Desktop \data\train.csv",encoding='utf-8')
61
df_test = pd.read_csv(r"F:\501048_928122_bundle_archive\ data_Q3_2019\data_Q3_2019\2019-09-28.csv",encoding='utf-8')
Hình 3.3: Input thƣ viện và cho máy học dữ liệu training và dữ liệu test trên mơi trƣờng Spark.
Tập dữ liệu để tiến hành các thực nghiệm bao gồm hai tập con: tập dữ liệu huấn luyện (training_data) cĩ tổng cộng 2208 ví dụ khác nhau về thơng số của các ổ cứng máy tính, tập dữ liệu kiểm tra (test_data) cĩ 2225 ví dụ khác nhau. Tất cả đều đƣợc gán nhãn. Hình dƣới đây là ví dụ về một số dữ liệu các thơng số của ổ cứng máy tính đƣợc tạo ra từ cơng cụ Smartmontools.
Hình 3.4: Tập dữ liệu kiểm tra
Chuyển các file dữ liệu thành 2 file .csv một file dữ liệu huấn luyện, một file dữ liệu kiểm thử:
62
- jan_dec_backblaze_test.csv: Tập huấn luyện 30,8 KB (3153,2 bytes) – 2208 mẫu.
- nov_dec_backblaze_test.csv: Tập kiểm thử 63,4 KB (64921,6 bytes) – 2225 mẫu.