라즈베리파이3 B+ 설치가이드(8) SSD 마운트/사용하기

Updated:

이전 글에서 라즈베리파이에 하드디스크를 추가하는 방법을 설명해보았습니다. 이번에는 SSD를 자동 마운트하는 설정을 해보겠습니다. 그리고, 마지막에는 SSD 읽기/쓰기 성능 평가를 살펴보겠습니다.

1. 라즈베리파이에 연결할 SSD

SSD는 보통 SATA 인터페이스와 USB 인터페이스를 사용한 2종류로 구분할 수 있습니다. 개인용 컴퓨터 내부에 장착용은 SATA 인터페이스를 사용하며, 외장 SSD는 USB 인페이스를 사용합니다. 따라서, 일반 SSD(SATA 인터페이스)를 라즈베리파이에 연결하려면 STAT-USB 변환 케이블이 필요합니다. 외장 SSD는 USB 케이블로 라즈베리파이에 연결해주면 됩니다. SSD는 소비전력이 적기 때문에 따로 전원 공급선이 없어도 동작 가능합니다.

제가 연결할 SSD는 Samsung T5 모델로 USB 케이블로 라즈베리파이에 연결 가능합니다.

2. SSD를 usb 연결하기 및 마운트 확인

SSD를 라즈베리파이에 연결하면 자동 마운트가 실행됩니다. 하드디스크 설정에서 살펴본대로 리눅스에서 저장장치 연결상태 를 확인하는 명령어는 fdisk, blkid, lsblk 가 많이 사용합니다. SSD 장치를 연결하고 결과를 다시 확인해보시죠. 각 명령어 설명은 하드디스크 마운트 설정 글을 참고하세요.

#!/bin/bash
pi@raspberrypi:~ $ sudo lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk
└─sda1        8:1    0 465.8G  0 part /media/pi/fd59615a-19bd-4dba-9787-6b75f17f8005
mmcblk0     179:0    0  29.8G  0 disk
├─mmcblk0p1 179:1    0  43.2M  0 part /boot
└─mmcblk0p2 179:2    0  29.8G  0 part /

lsblk는 블록 디바이스들을 출력해주는 명령어로, 방금 연결한 SSD 장치명은 sda로 추가되었습니다. 마운트 포인트는 /media/pi 폴더 밑으로 UUID를 사용하여 자동 생성되었습니다.

#!/bin/bash
pi@raspberrypi:~ $ sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="6228-7918" TYPE="vfat" PARTUUID="0ee4afb4-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="6bfc8851-cf63-4362-abf1-045dda421aad" TYPE="ext4" PARTUUID="0ee4afb4-02"
/dev/mmcblk0: PTUUID="0ee4afb4" PTTYPE="dos"
/dev/sda1: UUID="fd59615a-19bd-4dba-9787-6b75f17f8005" TYPE="ext4" PARTUUID="c1214e2a-01"

blkid는 블록 디바이스들의 속성을 출력해줍니다. 추가된 SSD의 UUID 정보와 파티션 UUID인 PARTUUID를 확인할 수 있습니다. TYPE에서는 연결된 SSD가 ext4 파일 시스템을 사용하고 있음을 말해줍니다.

3. SSD 장치 포맷

SSD를 포맷하실 분들만 참고하셔요. 기존에 사용하던 데이터를 계속 사용할 분들은 SSD 포맷하시면 안됩니다. SSD 포맷하면 자료 다 날라가요~~~

SSD 장치 포맷은 하드디스크 마운트 설정 글을 참고하세요. SSD에서는 생략하겠습니다.

4. SSD 자동 마운트 설정 - fstab

SSD 사용 준비는 완료되었지만, 재부팅 시 마다 마운트를 다시 해줘야합니다. 이런 경우 필요한 것이 fstab 설정입니다. fstab에는 부팅시 리눅스에서 디바이스들을 어떻게 마운트할지를 기재해두고, 설정대로 처리합니다. 아래처럼 fstab 파일을 편집합니다.

#!/bin/bash
pi@raspberrypi:~ $ sudo vi /etc/fstab

fstab에 위에서 확인했던 SSD UUID 정보와 마운트 포인트를 추가합니다.

fstab 설정 옵션을 간단히 살펴보면, 첫번째는 마운트할 디바이스 정보입니다. 디바이스는 LABLE, UUID, PARTUUID 등을 기재할 수 있습니다. 두번째는 마운트 포인트입니다. 세번째는 해당 디바이스의 파일 시스템을 기재합니다. 네번째는 마운트 옵션이며, defaults를 기재하면, rw, nouser, auto, exec, suid 속성을 모두 가집니다. defaults 외에 noatime만 추가해줍니다. noatime 옵션은 access time에 대해 기록을 하지 않아 약간 성능 향상을 볼 수 있습니다. 다섯번째는 dump 설정으로 0은 덤프하지 않는 파일시스템 설정입니다. 여섯번째는 fsck 실행 옵션입니다. 0은 fsck를 실행하지 않도록 합니다.

fstab 설정을 완료하고, 재부팅을 해봅시다. 부팅 완료 후에 SSD가 자동으로 마운트 되어 있으면 설정은 성공입니다. lsblk 명령어로 sda1 디바이스가 pi 홈디렉터리에 ssd_storage 마운트 포인트로 마운트 되어 있는 것을 확인할 수 있습니다.

#!/bin/bash
pi@raspberrypi:~ $ sudo lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 465.8G  0 disk
└─sda1        8:1    0 465.8G  0 part /home/pi/ssd_storage
mmcblk0     179:0    0  29.8G  0 disk
├─mmcblk0p1 179:1    0  43.2M  0 part /boot
└─mmcblk0p2 179:2    0  29.8G  0 part /

이제 라즈베리파이에서 SSD를 사용하기 위한 설정도 모두 마쳤습니다. 이전 글에서 확인한 하드디스크 설정과 크게 다를바가 없네요.

5. SSD 읽기/쓰기 성능 평가

하드디스크 벤치마크 실행한 것과 같이, SSD에서 벤츠마크를 실행해보겠습니다. 보통 SSD는 매우 성능이 좋기로 유명한데요. 라즈베리파이에서의 SSD 읽기 쓰기 성능이 얼마나 나올지 측정해봅니다. 벤치마크 프로그램은 하드디스크 벤치마크와 동일하게 hdparm, dd, iozone을 사용한 Jeff Geerling 블로그를 참고하여, 진행하였습니다.

benchmark hdparm buffered dd write 4K rand read 4K rand write
SSD Samsung T5 33.18 MB/sec 35.50 MB/sec 10.87 MB/sec 12.71 MB/sec

hdparm과 dd 테스트는 괜찮게 나왔고, iozone rand read/write 테스트 결과가 하드디스크에 비해서 꽤나 잘 나왔네요. 그래도 원래 SSD 성능을 생각해본다면, 원래 SSD 성능을 다 뽑아내지 못한다고 볼 수 있습니다. 라즈베리파이3 B+의 USB 인터페이스는 2.0 임을 다시 느끼게 해주네요. 삼성전자에서 기재하는 SSD T5 모델의 최대 전송 속도는 540 MB/sec입니다. 이 속도를 다 뽑아낼꺼라고 기대도 안했지만, 10분의 1 수준의 성능도 발휘를 못하네요.

SSD 외 다른 스토리지 read/write 성능 결과는 설치가이드(6) 저장장치 선택하기를 참고해주세요.


더 많은 라즈베리파이 이야기 Pi Guide 보러가기


Leave a Comment