본문 바로가기
PC/Linux

[NAS] eSATA에 연결한 SSD를 cache로 사용

by dragom 2021. 1. 11.
반응형

Synology NAS의 일부 제품들은 eSATA로 추가 하드디스크 연결 시 제품 베이 내부의 디스크들과 하나의 디스크그룹으로 사용할 수 없는 경우가 있습니다.
(아마 외부장치 연결이 끊겼을 경우를 대비하여 그런듯 합니다.)
제가 사용한 방법을 이용해 이러한 기기에서도 eSATA를 이용해 기존 볼륨을 확장하거나 SSD를 추가로 연결하여 캐쉬로 사용할 수 있습니다.
저는 볼륨확장은 연결 불안도 있고 밑에서도 기술하지만 하드디스크를 외부에 놓고 싶지않아 4베이를 모두 하드디스크로 채우고 외부에 eSATA로 SSD를 연결하여 캐쉬로 설정했습니다.


제가 사용하고 있는 NAS는 synology 412+ 모델입니다.

최근 나오는 420 같은 제품들은 M.2 slot이 하드 베이와 별도로 마련되어있어
하드 베이를 차지 하지 않고 M.2 SSD를 사용하여 SSD cache를 이룰 수 있어 매우 부럽습니다.

제가 사용하는 412+는 4베이에 별도 M.2 슬롯이 없습니다.

 

 

그래서 원래는 드라이브4에 2.5 인치 SSD를 넣어 SSD cache로서 사용하고 있었으나,

최근 용량에 대한 갈증과 함께 인터넷에서 재밌는 글을 발견하여 시도해보고자 합니다.

https://www.casler.org/wordpress/synology-ssd-cache-on-external-devices/

 

Synology SSD Cache on External Devices - Casler

Read Part Two of this topic: Synology SSD Cache on External Devices – Part 2 – Forced Failure My Synology DS1513+ has been working great for 6 years and was a direct replacement for an old EMC NAS. The EMC was good too but the software support for a ho

www.casler.org

제가 참고한 글 입니다.

어떤 용자께서 eSATA와 USB 포트를 이용한 SSD cache를 시도해 보셨더군요.

일단 저도 SSD를 eSATA포트에 연결하기 위해 eSATA 케이블을 하나 주문하였습니다.

https://coupa.ng/bPno8t

 

eSATA to SATA 22핀 하드 연결 젠더/케이블 50cm

COUPANG

www.coupang.com

일반적으로 판매하는 eSATA to SATA 케이블들은 eSATA power 라고 하는 구격인 경우가 많았습니다.

eSATA 포트에서 전원까지 공급해주기 위한 별도의 구격인데, 아무리 생각해봐도 synology에 있는 eSATA 포트의 경우 전력이 공급되는 eSATA power가 아닐 것으로 생각되어 한참을 찾아 인터넷을 돌아다닌 끝에 USB로 전원을 인가할 수 있는 esata 케이블을 찾았습니다.

위 링크에 있던 용자의 시도를 보고 저도 /etc/synoinfo.conf를 수정했습니다.

다만 윗분은 DS1513을 사용했기에 원래 5bay인 NAS이고,

저는 DS412+에서 적용하려다보니 좀 다른 점이 있었습니다.

synoinfo.conf (원본)

esataportcfg="0x40"
internalportcfg="0xf"
usbportcfg="0x70000"
maxdisks="4"

제 NAS는 4bay제품이다보니 internalportcfg가 4bit로 표현되어있습니다.
링크에서는 internal이 0x1f -> 0xdf, esata가 0xc0 -> 0x00 이었습니다.

혹시라도 제 쪽에서는 internalportcfg 변수를 무조건 4bit로만 사용하게 되어있으면 
DSM이 부팅 불가능한 상황에 빠져 DSM OS를 새로 깔거나 적용이 되지 않는 상황이 발생할 수 있기에,
OS를 새로 깔더라도 빨리 복구 할 수 있도록 일단 백업을 진행하고 이후 진행하였습니다.

esataportcfg="0x00"
internalportcfg="0x4f"
usbportcfg="0x70000"
maxdisks="5"

저는 eSATA를 사용할 예정이며 USB는 사용하지 않을 예정이기에 usbportcfg는 변경하지 않았고,
esataportcfg에 해당하는 0x40을 기존 internalportcfg인 0xf에 더하여 internalportcfg를 0x4f로 지정하였습니다.

(원래 eSATA값인 0x40 = binary로 0100_0000 의 8비트 값이고, internal인 0xf는 1111의 4비트 입니다.

따라서 7번째 자리도 eSata가 아닌 internal로 인식되라고 0xf+0x40 = 0x4f로 변경하였습니다.)

**** 실패 후 수정****

위 값으로 진행하였는데, drive 수가 6개로 잡히고 node.js 앱은 에러나고 SSD는 esata가 아닌 internal로 잡히기는 하고 SSD에 볼륨2도 생성은 되나 SSD cache mount는 계속 실패했습니다.

maxdisks="6"으로 수정 후 제대로 될지는 모르겠으나..

일단 저는 internalportcfg="0x7f" , esataportcfg="0x00", maxdisks="7"로 하여 진행해서 SSD 캐쉬 마운트, node.js앱 오류 복구 등 정상 작동 상태로 진입하였습니다.

혹시 위와 같이 설정하셔도 안되면... 이게 이유였을까 모르겠지만, SSD에 볼륨2를 만들었다가 삭제하고 mount 진행한 점도 있습니다.

이러한 수정을 /etc/synoinfo.conf와 /etc.defaults/synoinfo.conf 두 곳에 동일하게 해줘야하는데,

아마도 etc.defaults에 있는 값을 수정하는 것은 재부팅되어도 계속 적용해주기 위함일 것이라 생각됩니다.

일단 이 상태로 재부팅 하지 않아도 maxdisks는 적용된 것이 확인되었습니다.

 

 

4베이 모두 사용 중인 것으로 나오던 것이 이제 사용 가능한 슬롯 1이 있는 것으로 표기되고 있습니다.

이제 eSATA로 연결한 SSD만 내부 드라이브로 잡히면 모든 것이 끝나는데...

 

 

현재 eSATA를 꼽아서 인식해 놓은 채로 출근하여 외부에서 작업을 하고 있는데

이미 eSATA로 인식해 연결 되어있어서 그런가 eSATA인 채로 계속 있네요.

(혹은 볼륨 확장중이라 다른 작업이 중단되어 있거나...)

집에가면 한 번 뽑았다 다시 꼽아주고, 그래도 안되면 재부팅까지 시도해볼 생각입니다.

이 부분은 추후 수정하겠습니다.


결국 퇴근까지 참지 못하고 재부팅을 통해 진행하였습니다.

위에 빨강색 글로 쓴 것처럼 드라이브 수 문제 등이 있었고 제대로 cache 설정이 작동되지 않아

synoinfo.conf의 변수들을 수정하였습니다.

그렇게 변경한 뒤 현재 상태입니다.

 

 

 

 

 

 

 

 

그러고보니 maxdisks=7로 했는데 6칸만 나오는 것도 이상하긴하네요.ㅎ

일단 캐쉬가 문제없이 작동하니 더이상 건드리지 않고 여기서 마무리 합니다~

2021-01-12 추가
아직도 캐쉬는 끊김없이 잘 작동하고 있습니다.
다만 6개로 표시되던 드라이브 자리 수가 어느새 7개로 변경되었네요. 저부분을 이쁘게 5개로 바꾸고 싶기는하지만 굳이 시도하지 않을 생각입니다.

2021-03-30 추가

eSATA로 외부에서 연결한 SSD가 종종 끊기지 않을까 걱정했었는데, 지금까지 아~무 문제 없이 잘 사용했었습니다.

오늘 6.2.4로 업데이트 하니 설정이 풀려 있어 다시 잡아 줬습니다. 

/etc/synoinfo.conf는 기존과 동일한데 /etc.defauls/synoinfo.conf는 원래대로 돌아갔더군요. 해당 부분을 이 글의 붉은 색 부분과 동일하게 다시 맞춰주고 재부팅 했습니다.

여전히 잘 적용되고 있습니다.

 

 

반응형

댓글