USB flash memory 로 서버 돌리기

Arcy의 이미지

요즘은 가벼운 홈서버정도는 HDD 없이 USB 메모리로 커버 가능합니다.

서버 가볍게 깔면 2기가로 충분하죠. 디비서버 웹서버 등등 데이터 많이 쌓이는거 아니면..

요즘처럼 4G 8G 16GB USB flash가 싼 시점에선, SSD와 HDD의 중간정도 역할을 USB flash 메모리가 채워줍니다.

SSD처럼 비싸지 않고, HDD의 소음도 없으며, idle일때 갑자기 서비스를 요청해도 응답속도가 빠르죠.

수명은 HDD하고 비교해서 어떨지 모르겠습니다만, 백업만 열심히 한다면 문제는 없겠죠.

아무튼, 메인보드가 BOIS에서 부팅 순서에서 "USB storage"를 첫번째로 둘 수 있어야 합니다. 대부분 P4 이후의 보드들은 지원을 합니다.

기존 돌리는 서버의 HDD를 USB flash로 교체한다면 다음과 같은 과정을 거칩니다.

1. USB 메모리를 연결합니다. /dev/sdb 혹은 /dev/sda 로 잡히는걸 dmesg로 확인합니다.

2. fdisk 후 mkfs 해줍니다. HDD랑 마찬가지입니다. CentOS, Fedora 등 RedHat 계열은 e2label 등으로 "/" 레이블 해주면 편합니다.
ex) /dev/sda1

3. 적절한 위치에 마운트합니다.
ex) # mount /dev/sda1 /mnt/newroot)

4. 하드 용량이 적다면 전체 다 복사합니다. rsync 의 경우 -X 옵션을 줘야 selinux 권한까지 복사됩니다.
ex) rsync -avX / /mnt/newroot --exclude=/proc/* --exclude=/sys/* --exclude=/mnt/*

5. device.map 과 grub.conf 를 설정하고 grub-install 합니다. 이건 원래 HDD 가 제거 된 후의 device map 을 설정해줘야 합니다. 뭐 부팅 안되면 시디나 등드으로 rescue boot 하고 나중에 고쳐도 됩니다.
ex) grub-install --root-directory=/mnt/newroot /dev/sda

6. 루트가 usb 디바이스니까, 루트를 마운트하기 전.. initrd 안에 usb 드라이버가 들어가줘야 합니다. 레드햇 계열의 경우 (/mnt/newroot)/etc/modprobe.conf 에 다음 줄을 첨가합니다.

alias scsi_hostadapter1 usb-storage

그리고 USB 메모리 안에서 initrd 를 만들어줍니다. (뭐 이거 먼저 하고 4번부터 해도 괜찮습니다.)

# chroot /mnt/newroot
# mv /boot/initrd-$(uname -r).img /boot/initrd-$(uname -r).img.old
# mkinitrd /boot/initrd-$(uname -r).img $(uname -r)

7. HDD 뽑고 USB flash 메모리로 부팅해봅니다. HDD 로 돌릴 때와 똑같이 동작하는지 확인합니다.

사실 5, 6 번만 USB 메모리에 특화된 내용이고, 나머지는 일반적인 서버 디스크 마이그레이션이랑 같네요. 홈서버나 가벼운 서버 돌리는 분들 참고하세요~

댓글

primewizard의 이미지

시간이 나면 한번 시도해 봐야 겠습니다. ^^

송효진의 이미지

모든 파일시스템을 readonly 로 마운트한 채 구동할 수 있다면 정말 오래가겠네요.
플래시메모리는 아무래도 지우기횟수제한 때문에 readonly 가 아니면 수명을 장담할 수 없죠.

emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/

emerge money
http://wiki.kldp.org/wiki.php/FuntooInstallLog - 명령어도 몇 개 안돼요~
http://xenosi.de/

망치의 이미지

일반적으로 사용하는 usb 메모리에 삭제횟수 제한이 있나요?
어느정도인가요?

---------------------------------------
http://www.waitfor.com/
http://www.textmud.com/

sio4의 이미지

USB 메모리 내부의 실질적인 기억소자의 기억(기록) 방식에 의하여 생명 주기가 정해져 있습니다. 다만, 그 수명이 "더 큰 메모리로 옮겨가고 싶은 욕망의 주기" 보다 길면 문제가 없는 것이죠.

--
"The love you take is equal to the love you make." The End, by Beatles

--
"The love you take is equal to the love you make." The End, by Beatles

mrjh76의 이미지

파일시스템 종류도 바꾸는것이 좋을듯합니다.
저널링파일시스템이 아닌... 일반 ext2 정도로... 이유는... 이유는...

푸른바람의 이미지

https://wiki.ubuntu.com/LiveUsbPendrivePersistent의 "Method 1: Installing Ubuntu directly to USB drive from installer CD"에 우분투 리눅스를 USB메모리에 직접 설치하는 방법이 나와있습니다. 설치CD로 리눅스를 설치할때.. 하드디스크가 아닌 USB메모리를 포맷하고 인스톨하면 됩니다.
우분투 데스크탑을 USB메모리에 설치하고 몇달째 혹사(?)시키고 있는데.. 아직까지 문제없이 잘 사용하고 있습니다. 근데 데스크탑의 경우 8G는 되야 합니다.

koseph의 이미지

LiveCD 대용으로 쓰시는 걸 권해 드립니다.

플래시 메모리 안나갈 거 같죠????

이것도 맛이 갑니다.

예전에 시스코 라우터 중에 IOS 뿐만 아니라 모든 스토리지 액세스를 플래시 기반으로 하던 제품이 있었습니다.

문제 정말 많았습니다.

말린다고 안하실 거 같지 않지만 이런 문제가 있다는 건 명심하세요.

백업 잘 하시구요.
---------------------------------
There's always another way, dear.

---------------------------------
There's always another way, dear.

푸른바람의 이미지

쓰기(사실은 지우기) 횟수 한계 이상으로 써서 문제되는 경우는 실제로는 거의 없고, USB 접촉부나 콘트롤러에 이상이 생겨 고장이 난다고 합니다.
라이브CD처럼 read-only로 사용한다고 해서 고장나지 않는 것은 아니고..
조금 불안할 수는 있지만 일반 사용자라면 컴의 하드 대신 사용하여도 별 문제 없을겁니다. 백업이야 일반 하드를 사용할 때도 필요한 것이고요.
USB의 전송 속도가 문제될 수는 있습니다.

gamma의 이미지

저는 CF-ATA 컨버터를 구입해서 DSLR카메라에 사용하던 1GB CF카드에
ubuntu server를 설치해서 사용하고 있습니다.
설치용량은 대략 700MB정도 차지합니다.

그런데 인터넷 검색하다보니 read-only로 사용하더라도 NAND flash memory의
read disturb 현상 때문에 문제될 소지가 있더군요.

junilove의 이미지

usb 메모리로 raid 구성하면 어떨까요?
8기가짜리가 16000원이던데...4개 사서 raid 5로...

- How To RAID USB Mass Storage Devices : http://eclug.homelinux.org/content/view/158/59/
- USB stick RAID in ACTION! : http://cs.joensuu.fi/~mmeri/usbraid/
- USB thumb drive RAID : http://tldp.org/LDP/LGNET/151/weiner.html
- The Thumb Drive RAID Experiment : http://www.bigbruin.com/reviews05/thumbraid_1
- Howto: Boot Linux with a USB Flash Drive Raid as the RootFS : http://analogbit.com/node/13

다즐링의 이미지

4개면 raid 10 이 좋을듯 합니다 ==33

------------------------------------------------------------------------------------------------
Life is in 다즐링

------------------------------------------------------------------------------------------------
Life is in 다즐링

breadncup의 이미지

속도면에서 USB 2.0 Spec으로 현실적으로 보통 30MB/s정도 나오는데요, 보통의 HDD의 경우에는 74.0 MB/s 에서 111.4 MB/s 정도 전송률이 있기때문에 아마 HDD를 쓰는 경우가 평균치는 더 빠를 것 같습니다.

USB를 쓰게 되면 장점은 고른 평균 속도를 보장해 준다는 것인데요, HDD의 경우는 Header의 위치등의 물리적인 한계로 인해 속도가 제멋대로(?)라는 단점이 있습니다. 반면 USB의 경우에는 Header에 따른 속도 차이가 없으므로, 어떤 Sector를 접근하던지 거의 고른 속도를 보장해 준다는 것이 장점이지요.

2008년 11월 17일에 발표된 USB 3.0 Spec은 이상적인 속도로 5.0 Gbit/s (약 625MB/s)까지 나온다고 하니까 USB 3.0 Storage의 경우에는 큰 이득이 될 수 있겠네요. :)

~~~ Signature from here

  1. http://kblog.breadncup.com/about/
  2. http://kblog.breadncup.com/

~~~ Signature to here

정상인의 이미지

웨어레벨링이 되는 플레시 usb 드라이브라면 쓰기횟수의 문제는 없겠지요.
요즘은 플레시 드라이브들이 그런 기술도 다 적용해 수준 좋게 잘 나오는걸로 압니다. mlc기준으로도 년단위를 버틸 수 있지요. 문제는 쓰기회수가 나가기 전에 다른 부품이 나갈 지도 모른다는 거려나요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.