[CentOS7] SSD Trim 지원여부 확인

사용환경

  • H/W
    • SAMSUNG Sens X170
    • SSD : WD Green 120GB (WDC WDS120G1G0A-00SS50)
  • S/W
    • OS : CentOS 7 (3.10.0-693.21.1.el7.x86_64)

시작하기 전에..

기존에 HP 넷북을 회사에서 위키를 돌리는 개인용 서버로 사용하고 있었다. (HP mini110) 아톰CPU에 1GB의 빡빡한 메모리였지만 php 위키(도쿠위키)를 돌리는데에는 문제가 없었다. 문제는 너무 오래된 장비라서 언제 죽을지 모를 것 같은 불안감이 있고, 현재 지원이 종료된 Ubuntu 15.10이라서 OS 업그레이드도 필요한 상황이었다.

그 참에 집에서 사용 중이던 노트북을 바꾸고, 기존에 정말 필요할 때만 사용하던 노트북(SAMSUNG Sens X170)으로 개인서버를 이전하려고 이것저것 시간이 날 때마다 셋팅을 하나씩 하는 중이다. 마찬가지로 열악한 성능의 듀얼코어 CPU이지만 기존에 아톰프로세서보다 상위급의 CPU이고 메모리도 3기가로 늘어난다. 기존에 HP Mini 넷북서버로 운영 할 때는 대량으로 이미지를 띄웠을 때 apache 프로세서가 CPU를 100% 가까이 늘어나면서 거의 멈추다시피 느려지는 상황은 줄어들 것으로 기대된다.

개인업무용으로 사용하는 문서를 도쿠위키로 운영 중인데, 특성상 한 번 셋팅을 하게되면 향후 몇 년간 다시 셋팅할 일이 없도록 하려고 한다. 그래서 익숙한 Ubuntu 대신에 지원기간이 좀 더 길고, 향후 회사에서 진행하게될 차세대 프로젝트에서 사용할 가능성이 높은 CentOS를 선택해서 하나씩 셋팅을 진행하고 있다. 작업과정도 하나씩 문서로 남겨둬서 추후에 사용이 가능하도록 하는 중이다.

그 중에서 블로그용으로 적합한 몇 가지 내용들을 선택해서 포스팅하려고 한다.

hdparm 설치

hdparm 명령어로 하드디스크의 설정을 조회하거나 변경할 수 있는데, 점검을 위해서 필요한 명령어이다. 명령어가 있는지 찾아보자.

# which hdparm
/usr/bin/which: no hdparm in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

그런 명령어가 없단다. 그럼 설치해야지… 당연히 명령어는 root 계정으로…

# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
# yum install hdparm
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00 
extras | 3.4 kB 00:00:00 
updates | 3.4 kB 00:00:00 
Loading mirror speeds from cached hostfile
 * base: centos.mirror.cdnetworks.com
 * extras: centos.mirror.cdnetworks.com
 * updates: centos.mirror.cdnetworks.com
Resolving Dependencies
--> Running transaction check
---> Package hdparm.x86_64 0:9.43-5.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================
 Package Arch Version Repository Size
===================================================================================================================================
Installing:
 hdparm x86_64 9.43-5.el7 base 83 k

Transaction Summary
===================================================================================================================================
Install 1 Package

Total download size: 83 k
Installed size: 152 k
Is this ok [y/d/N]: y
Downloading packages:
hdparm-9.43-5.el7.x86_64.rpm | 83 kB 00:00:00 
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : hdparm-9.43-5.el7.x86_64 1/1 
 Verifying : hdparm-9.43-5.el7.x86_64 1/1

Installed:
 hdparm.x86_64 0:9.43-5.el7

Complete!
#

hdparm 명령어 사용

hdparm 명령어가 생겼는지 확인해보고 설치된 SSD의 정보를 확인해보자.

# which hdparm
/sbin/hdparm
# hdparm -I /dev/sda

/dev/sda:

ATA device, with non-removable media
 Model Number: WDC WDS120G1G0A-00SS50 
 Serial Number: ------------ (시리얼넘버는 지움)
 Firmware Revision: Z3311000
 Media Serial Num: 
 Media Manufacturer: 
 Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
 Used: unknown (minor revision code 0x0110) 
 Supported: 9 8 7 6 5 
 Likely used: 9
Configuration:
 Logical max current
 cylinders 16383 16383
 heads 16 16
 sectors/track 63 63
 --
 CHS current addressable sectors: 16514064
 LBA user addressable sectors: 234441648
 LBA48 user addressable sectors: 234441648
 Logical Sector size: 512 bytes
 Physical Sector size: 512 bytes
 Logical Sector-0 offset: 0 bytes
 device size with M = 1024*1024: 114473 MBytes
 device size with M = 1000*1000: 120034 MBytes (120 GB)
 cache/buffer size = unknown
 Form Factor: 2.5 inch
 Nominal Media Rotation Rate: Solid State Device
Capabilities:
 LBA, IORDY(can be disabled)
 Queue depth: 32
 Standby timer values: spec'd by Standard, no device specific minimum
 R/W multiple sector transfer: Max = 1 Current = 1
 Advanced power management level: 128
 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 Cycle time: min=120ns recommended=120ns
 PIO: pio0 pio1 pio2 pio3 pio4 
 Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
 Enabled Supported:
 * SMART feature set
 Security Mode feature set
 * Power Management feature set
 * Write cache
 * Look-ahead
 * Host Protected Area feature set
 * WRITE_BUFFER command
 * READ_BUFFER command
 * DOWNLOAD_MICROCODE
 * Advanced Power Management feature set
 SET_MAX security extension
 * 48-bit Address feature set
 * Device Configuration Overlay feature set
 * Mandatory FLUSH_CACHE
 * FLUSH_CACHE_EXT
 * SMART error logging
 * SMART self-test
 * General Purpose Logging feature set
 * WRITE_{DMA|MULTIPLE}_FUA_EXT
 * 64-bit World wide name
 * WRITE_UNCORRECTABLE_EXT command
 * {READ,WRITE}_DMA_EXT_GPL commands
 * Segmented DOWNLOAD_MICROCODE
 * Gen1 signaling speed (1.5Gb/s)
 * Gen2 signaling speed (3.0Gb/s)
 * Gen3 signaling speed (6.0Gb/s)
 * Native Command Queueing (NCQ)
 * Phy event counters
 * unknown 76[15]
 DMA Setup Auto-Activate optimization
 Device-initiated interface power management
 * Software settings preservation
 unknown 78[8]
 * DOWNLOAD MICROCODE DMA command
 * WRITE BUFFER DMA command
 * READ BUFFER DMA command
 * Data Set Management TRIM supported (limit 8 blocks)
 * Deterministic read ZEROs after TRIM
Security: 
 Master password revision code = 65534
 supported
 not enabled
 not locked
 frozen
 not expired: security count
 supported: enhanced erase
 2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 5001b448b618fe0f
 NAA : 5
 IEEE OUI : 001b44
 Unique ID : 8b618fe0f
Checksum: correct
#

워.. 너무 길다. 내가 원하는 부분만 찾아보자.

# hdparm -I /dev/sda | grep TRIM
 * Data Set Management TRIM supported (limit 8 blocks)
 * Deterministic read ZEROs after TRIM
#

어떻게보면 당연한거지만 TRIM 지원한다. 그래도 TRIM 적용하기 전에 확인하고 싶었다.

SSD Trim 적용조건

예전에 Ubuntu 서버에 적용했던 자료를 찾아봤다. 조건은 아래와 같았다.

  1. Linux Kernel 2.6.33 이상
  2. SSD가 TRIM을 지원 <- 방금 확인했다.
  3. 파티션이 Ext4이거나 Btrfs인 경우

일단, 현재 신규로 설치한 CentOS 서버는 커널버전이 3.10.0이고, SSD가 Trim을 지원하는지는 확인완료했고… 파일시스템은 CentOS가 기본으로 xfs길레 그냥 xfs로 했다. 다행이 대충 구글링해보니 지원에는 문제가 없는 것 같다.

마치면서..

다음에는 아마 Trim 지원여부를 확인했으니 Trim을 적용하는 포스트를 올리게 될 것 같다. 일종의 예고편으로 과거에 Ubuntu 13.10에서 작업했던 문서를 업로드하니 참고하면 될 것 같다.