smartctl을 이용한 하드디스크 진단
컴퓨터에서 디스크의 의미는 매우 중요합니다. 사람의 데이터를 영구적으로 보관해야 할 의무를 가지 때문이지요. 이러한 디스크에 문제가 발생한다면 데이터를 영구적으로 잃을 수도 있고 오늘과 같이 IT 를 기반으로 사회가 움직이는 마당에 그러한 일이 발생한다면 큰 금전적인 손실을 입을 수도 있습니다.
이렇게 중요한 디스크의 문제나 오류를 차단하기 위해서는 주기적으로 점검을 해야할 필요가 있는데, 리눅스 시스템에서는 이러한 유용한 도구를 제공 합니다.
smartctl
smartctl 도구는 S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) 기능이 탑재된 하드디스크를 점검하는 도구 입니다. 사실상 S.M.A.R.T 의 기능을 이용하는 도구이다보니 이 기능이 없는 하드디스크는 이 도구를 이용할 수가 없습니다. 하지만 걱정할 필요는 없습니다. S.M.A.R.T. 기능은 오래전부터 있었던 것이라 왠만한 하드디스크에는 모두 지원되고 있습니다.
먼전, 간단한 디스크 정보도 볼겸 하드디스크에 S.M.A.R.T. 가 기능이 있고 활성화가 되어 있는지를 다음과 같이 해봅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
smartctl -i /dev/sda smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-123.6.3.el7.x86_64] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital Caviar SE Serial ATA Device Model: WDC WD1600JS-00NCB1 Serial Number: WD-WMANM4339367 Firmware Version: 10.02E02 User Capacity: 160,041,885,696 bytes [160 GB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA/ATAPI-7 (minor revision not indicated) Local Time is: Tue Oct 7 21:27:49 2014 KST SMART support is: Available - device has SMART capability. SMART support is: Enabled |
‘-i’ 옵션을 주고 리눅스에서 하드디스크 장치를 인자로 주면 위와같은 결과를 보여줍니다. 주목해야 할 것은 맨 아래에 있는 ‘SMART support is: Enabled’ 입니다. 또, 자세히 보면 ‘/dev/sda’ 의 하드디스크 정보도 함께 파악할 수 있습니다.
참고로, 위의 결과는 하드디스크마다 다 다릅니다. 다른 하드디스크를 봐보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
martctl -i /dev/sdd smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-123.6.3.el7.x86_64] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Seagate Barracuda 7200.14 (AF) Device Model: ST3000DM001-1CH166 Serial Number: Z1F4K25T LU WWN Device Id: 5 000c50 065eb3e31 Firmware Version: CC27 User Capacity: 3,000,592,982,016 bytes [3.00 TB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 7200 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2, ACS-3 T13/2161-D revision 3b SATA Version is: SATA 3.1, 6.0 Gb/s (current: 3.0 Gb/s) Local Time is: Tue Oct 7 21:31:53 2014 KST ==> WARNING: A firmware update for this drive may be available, see the following Seagate web pages: http://knowledge.seagate.com/articles/en_US/FAQ/207931en http://knowledge.seagate.com/articles/en_US/FAQ/223651en SMART support is: Available - device has SMART capability. SMART support is: Enabled |
자세히 보면 이전 결과와 달리 ‘SATA Version is:’ 라고해서 SATA 버전도 나오고 ‘Rotation Rate’ 이라고해서 하드디스크의 회전수인 RPM 도 나옵니다. 추가적으로 WARING 을 통해서 이 하드디스크의 최신 펌웨어 정보가 있으니 업그레이드해보라고까지 나옵니다.
다음으로 좀 더 많은 자세하고 많은 정보를 봐보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
smartctl -a /dev/sdb smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-123.6.3.el7.x86_64] (local build) Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital Caviar SE16 Serial ATA Device Model: WDC WD3200KS-00PFB0 Serial Number: WD-WCAPD1278172 Firmware Version: 21.00M21 User Capacity: 320,072,933,376 bytes [320 GB] Sector Size: 512 bytes logical/physical Device is: In smartctl database [for details use: -P show] ATA Version is: ATA/ATAPI-7 (minor revision not indicated) Local Time is: Tue Oct 7 21:37:47 2014 KST SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x05) Offline data collection activity was aborted by an interrupting command from host. Auto Offline Data Collection: Disabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 9600) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 111) minutes. Conveyance self-test routine recommended polling time: ( 6) minutes. SCT capabilities: (0x103f) SCT Status supported. SCT Error Recovery Control supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0003 200 185 021 Pre-fail Always - 5000 4 Start_Stop_Count 0x0032 096 096 000 Old_age Always - 4940 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x000f 200 200 051 Pre-fail Always - 0 9 Power_On_Hours 0x0032 077 077 000 Old_age Always - 17398 10 Spin_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 11 Calibration_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 12 Power_Cycle_Count 0x0032 096 096 000 Old_age Always - 4444 194 Temperature_Celsius 0x0022 101 001 000 Old_age Always - 49 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0010 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 7 200 Multi_Zone_Error_Rate 0x0009 200 200 051 Pre-fail Offline - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay. |
‘-a’ 옵션을 주면 위와같이 상세한 정보가 나옵니다. 눈여겨 보실 부분은 중간에 나온 ‘SMART Attributes with Thresholds’ 부분 입니다. 각 항목별로 오른쪽에 수치가 나옵니다. 각각의 항목별은 의미가 다 있는데, 여기서 집중해서 봐야할 항목은 다음과 같습니다.
- Raw_Read_Error_Rate : 디스크로부터 데이터를 읽을때에 발생한 오류 비율. 외부에 물리적으로 충격이 가해지면 이 수치가 치솟는다고 합니다.
- Reallocated_Sector_Ct : 섹터에 문제가 발생할 경우에 대체영역으로 섹터를 바꾼 횟수
- Seek_Error_Rate : 하드디스크에서 데이터를 찾는 동안에 발생한 탐색 오류 비율.
- Offline_Uncorrectable : Offline 은 전원이 없는 상태를 말하며 하드디스크가 꺼졌을때에 잘못된 섹터 갯수로 매우 심각한 상태를 말한다.
- UDMA_CRC_Error_Count : 데이터 전송시에 발생한 CRC 체크섬 오류 횟수.
위 부분에 수치들이 높게 나온다면 문제가 있다고 봐야 하며 될수 있으면 하드디스크 구매한 곳에가서, A/S 기간이 남았다면, 교체를 요청해야 합니다.
특히나 서버에서 사용되어지는 하드디스크는 다른 하드디스크들보다 중요성은 말할 필요도 없겠지요. smartctl 을 통해서 미리미리 장애를 대응함으로써 중요한 데이터를 보호할 수 있습니다.