홈페이지 » 어떻게 » Ubuntu에서 간단한 파일 서버를위한 소프트웨어 RAID를 설정하는 방법

    Ubuntu에서 간단한 파일 서버를위한 소프트웨어 RAID를 설정하는 방법

    저렴한 가격에 파일 서버를 설치하기가 쉽습니까? 전자 메일 경고 기능으로 "견고한"견고성을 제공합니까? Ubuntu, 소프트웨어 RAID 및 SaMBa를 사용하여이를 수행하는 방법을 보여줍니다..

    개요

    "모든 강력한"클라우드로 모든 것을 옮기려는 최근의 소문에도 불구하고 때로는 다른 사람의 서버에 정보를 원하지 않거나 매번 인터넷에서 필요한 데이터 볼륨을 다운로드하는 것이 불가능할 수도 있습니다 (예 : 이미지 배포 ). 따라서 스토리지 솔루션 예산을 확보하기 전에 Linux에서 라이센스를 무료로 제공하는 구성을 고려하십시오.

    그렇게 말하면 저렴한 / 무료라는 것이 "바람에주의를 기울이는"것을 의미하지는 않으며,이를 위해 소프트웨어 RAID를 사용하는 것 외에도 설정해야하는 구성을 알고 있어야한다는 점을 유의해야합니다. 최대 가격 대비 신뢰도 비율.

    Filomena Scalise의 이미지

    소프트웨어 RAID 정보

    이름에서 알 수 있듯이이 디스크는 전용 하드웨어 카드 대신 소프트웨어에서 완벽하게 수행되는 RAID (Redundant Array of Inexpensive Disks) 설정입니다. 이러한 전용 카드가 시스템의 기본 구성에 추가 된 프리미엄이기 때문에 이러한 일의 주요 이점은 비용입니다. 주된 단점은 기본적으로 성능과 안정성입니다. 이러한 카드는 대개 중복 계산에 필요한 계산을 수행하는 자체 RAM + CPU, 향상된 성능을위한 데이터 캐싱 및 캐시에 쓰기 작업을 저장하지 않는 선택적 백업 배터리와 함께 제공됩니다 전원이 꺼지면 전원이 복원되었습니다..

    소프트웨어 RAID 설정으로 전체 시스템 비용을 줄이기 위해 일부 시스템 CPU 성능을 희생 시키지만, 오늘날의 CPU에서는 오버 헤드가 상대적으로 무시할 수 있습니다 (특히 주로이 서버를 "파일 서버"로 전용 할 경우). 디스크 성능에 관한 한 벌칙이 있습니다 ... 그러나 디스크 서브 시스템에서 서버의 병목 현상이 발생하여 서버가 얼마나 심오하게되었는지는 절대로 알지 못합니다. 톰의 하드웨어 가이드 "Tom 's goes RAID5"는 내가 개인적으로 참조로 사용하는 주제에 대한 훌륭한 기사이지만, 소프트웨어 RAID의 Windows 구현에 대해 이야기 할 때 소금을 사용하여 벤치 마크를 수행합니다 ( 다른 모든 것, 나는 리눅스가 훨씬 더 좋다 : P).

    전제 조건

    • 인내 젊은이, 이것은 오랫동안 읽었습니다..
    • RAID가 무엇이고 RAID가 무엇인지 알고 있다고 가정합니다..
    • 이 가이드는 우분투 server9.10 x64를 사용하여 작성되었으므로, 함께 작업 할 데비안 기반 시스템이 있다고 가정합니다..
    • 내가 VIM을 편집기 프로그램으로 사용하는 것을 보게 될 것이다. 이것은 익숙하기 때문에 ... 당신이 원한다면 다른 편집기를 사용할 수도있다..
    • 이 가이드 작성에 사용 된 우분투 시스템은 디스크 온 키에 설치되었습니다. 그렇게하면 RAID 어레이의 일부로 sda1을 사용할 수 있으므로 설정에 맞게 조정하십시오.
    • 만들려는 RAID의 유형에 따라 시스템에 최소한 두 개의 디스크가 필요하며이 설명서에서는 6 개의 드라이브를 사용하고 있습니다.

    배열을 만드는 디스크 선택하기

    함정을 피하는 첫 번째 단계는 그것이 존재 함을 아는 것입니다 (모래 언덕에서 Thufir Hawat).

    디스크를 가볍게 선택해서는 안되는 중요한 단계이며, 당신의 경험을 활용하면 현명 할 것이며이 경고에 유의하십시오.

    해야 할 것 아니 "일반 소비자 용"드라이브를 사용하여 어레이를 만들고 "서버 등급"드라이브 사용!!!!!!

    이제 네 생각이 뭔지 알아, 우리가 싸게 갈 것이라고하지 않았 니? 그렇습니다. 그러나 이것은 정확히 무의미한 일이며 피해야하는 곳 중 하나입니다. 매력적인 가격에도 불구하고, 소비자 용 하드 드라이브는 24/7 "on"유형의 사용에 사용하도록 설계되지 않았습니다. 저를 믿으십시오, 당신의 것이 진실하게 당신을 위해 이것을 시도했습니다. 예산 제약으로 인해 내가 설치 한 3 대의 서버에서 최소 4 개의 소비자 등급 드라이브가 서버 초기 출시 일로부터 약 1.5 ~ 1.8 년 후에 실패했습니다. RAID가 작동했기 때문에 데이터 손실은 없었지만 살아 남았습니다 ...이 순간은 서버 유지 보수를위한 회사의 시간 단축은 말할 것도없이 sysadmin의 예상 수명을 단축시킵니다 (더 높은 등급의 드라이브보다 많은 비용이 소요될 수 있습니다).

    어떤 사람들은 두 종류의 실패율에 차이가 없다고 말할 수 있습니다. 사실 이러한 주장에도 불구하고 서버 등급 드라이브는 여전히 SMART 제한 수준과 QAing 수준이 높습니다 (소비자 드라이브가 출시되는 즉시 시장에 공개되지 않음). 업그레이드를 위해 여분의 $$$를 작성하는 것이 좋습니다..

    RAID 레벨 선택하기.

    내가 사용할 수있는 모든 옵션 (RAID 위키피디아 항목에 잘 설명되어 있음)에 대해 설명하지는 않겠지 만, 필자는 RAID 6 이상 또는 그 이상을 항상 선택해야한다고 말하는 것은 주목할 만하다. 우리는 리눅스 RAID10). 이는 디스크에 장애가 발생하면 인접한 디스크에 장애가 발생할 확률이 높아지고 손에 "디스크 두 개"장애가 발생하기 때문입니다. 또한 대용량 드라이브를 사용하려는 경우 플래터 표면에 더 큰 디스크의 데이터 밀도가 높아 지므로 오류 발생 가능성이 높아집니다. 2T 이상의 IMHO 디스크는 항상이 범주에 속합니다..

    크래킹하자.

    디스크 파티션하기

    Linux / GNU에서는 스토리지 요구 사항에 대해 전체 블록 장치를 사용할 수 있지만 파티션을 사용하면 시스템이 불건전 한 경우 디스크 구조 도구를보다 쉽게 ​​사용할 수 있기 때문에 사용할 것입니다. 여기서 "fdisk"프로그램을 사용하고 있지만, 2T보다 큰 디스크를 사용하려면 parted와 같은 GPT 파티셔닝을 지원하는 파티션 프로그램을 사용해야합니다.

    sudo fdisk / dev / sdb

    노트: 파티션 유형을 변경하지 않고 배열을 만들 수 있다는 것을 알았지 만,이 방법은 그물 전체에 걸쳐 설명 되었기 때문에 (이 방법은 전체 블록 장치를 사용할 때 다시 불필요합니다).

    fdisk에서 키 입력은 다음과 같습니다.

    n; 새 파티션 용
    들어가다
    p; 주 파티션의 경우
    들어가다
    1 ; 파티션 수
    들어라. 기본값을 받아 들인다.
    들어라. 기본값을 받아 들인다.
    t; 유형을 변경하려면
    fd; 유형을 "Linux raid auto detect"(83h)로 설정합니다.
    w; 디스크에 변경 사항을 기록하고 종료하십시오.

    어레이의 일부가 될 모든 디스크를 린스하고 반복하십시오..

    Linux RAID10 어레이 만들기

    "리눅스 raid10 "은 비 짝수 디스크를 활용하여 바닐라 RAID10보다 성능과 탄력성을 높이는 방법과"10 "어레이를 하나의 단일 디스크에 만들 수 있다는 사실을 알고 있다는 것입니다 단계.

    마지막 단계에서 준비한 디스크에서 다음을 실행하여 어레이를 만듭니다.

    sudo mdadm --create / dev / md0 --chunk = 256 --level = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - -말 수가 많은

    노트: 이것은 표현이 두 개로 나뉘어 있음에도 불구하고 모두 한 줄에 불과합니다..

    매개 변수를 없애자.

    • "-chunk = 256"- RAID 스트라이프가 깨진 바이트의 크기이며,이 크기는 새 / 대형 디스크에 권장됩니다 (이 안내서를 만드는 데 사용 된 2T 드라이브는 해당 범주에서 의심의 여지가 없었습니다).
    • "-level = 10"- 리눅스 raid10 (기존의 습격이 필요한 경우, 이유가 무엇인지 두 가지 배열을 만들어 결합해야합니다.).
    • "-p f2"- 자세한 정보는 아래의 "주"회전 계획을 사용하고 "2"는 배열이 데이터의 두 복사본을 보관할 것임을 나타냅니다.

    노트: 디스크의 물리적 데이터 레이아웃이 동일하지 않게하기 때문에 "먼"계획을 사용합니다. 이것은 드라이브 중 하나의 하드웨어가 제조상의 결함으로 인해 실패한 상황을 극복하는 데 도움이됩니다. 두 개의 디스크가 동일한 제조사와 모델로되어 있기 때문에 동일한 방식으로 사용되어 왔으며 전통적으로 동일한 물리적 위치에 데이터를 보관 해왔다 ... 데이터 사본을 보유하고있는 드라이브가 고장난 위험이 존재합니다 또한 대체 디스크가 도착할 때까지는 또는 그와 근접하고 필요한 복원력을 제공하지 않습니다. "멀리"계획은 컴퓨터 케이스 내에서 서로 가깝지 않은 디스크를 사용하는 것 외에도 복사 드라이브의 완전히 다른 물리적 위치로 데이터를 분산시킵니다. 자세한 내용은 여기 및 아래 링크에서 확인할 수 있습니다..

    어레이가 생성되면 동기화 프로세스가 시작됩니다. 전통을 기다리고 싶을 수도 있지만 (다소 시간이 걸릴 수 있음) 즉시 배열을 사용할 수 있습니다.

    진행 상황은 다음을 사용하여 관찰 할 수 있습니다.

    watch -d cat / proc / mdstat

    mdadm.conf 구성 파일 만들기

    우분투는 시동시 어레이를 자동으로 스캔하고 활성화하는 것을 알고 있지만, 다음 sysadmin을 위해 완벽을 기하기 위해 파일을 생성합니다. 시스템이 자동으로 파일을 만들지 않고 RAID 세트의 모든 구성 요소 / 파티션을 기억하려고 시도하는 것은 시스템 관리자의 허리의 허리입니다. 이 정보는 mdadm.conf 파일에 보관할 수 있으며 보관해야합니다. 서식 지정은 까다로울 수 있지만 다행히 mdadm -detail -scan -verbose 명령의 출력은 사용자에게이를 제공합니다.

    노트: "대부분의 배포판에서는 / etc / mdadm이 아닌 / etc /에 mdadm.conf 파일이 있어야합니다. 나는 이것이 /etc/mdadm/mdadm.conf와 같은 "우분투 -ism"이라고 믿습니다. " 우리가 아르 여기 우분투를 사용하여, 우리는 그걸로 갈 것입니다..

    sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf

    중대한! 위의 명령으로 인해 생성 된 구문이 완전히 정확하지 않기 때문에 새로 생성 된 파일에서 "0"을 하나씩 제거해야합니다 (GNU / Linux는 아직 OS가 아닙니다).

    이 잘못된 구성으로 인해 발생하는 문제를보고 싶다면 "주사" 이 명령을 조정하기 전에 다음 명령을 사용하십시오.

    mdadm --examine --scan

    이 문제를 극복하려면 파일을 편집하십시오. /etc/mdadm/mdadm.conf 변경 :

    메타 데이터 = 00.90

    읽다:

    메타 데이터 = 0.90

    러닝 mdadm -examine -scan 명령이 오류없이 반환되어야합니다..

    배열의 파일 시스템 설정

    이 예제에서는 ext4를 사용했는데 그 이유는 나에게 ext3 파일 시스템의 친숙성을 기반으로 구축 되었기 때문입니다..
    나는 파일 시스템이 당신의 요구에 더 잘 어울리는 지 조사 할 시간을 가지기를 권장한다. 그리고 그 시작을 위해 우리는 "당신이 선택할 리눅스 파일 시스템은 무엇인가?".

    sudo mkfs.ext4 / dev / md0

    노트: 요청한 파티가 적어도 3.5T 연속 공간을 요청했기 때문에이 경우에는 결과 배열을 분할하지 않았습니다. 그 말로는, 내가 파티션을 만들고 싶었는데, 나는 "parted"와 같은 GPT 파티셔닝 가능한 유틸리티를 사용해야 만했을 것입니다..

    설치

    마운트 지점을 만듭니다.

    sudo mkdir / media / raid10

    노트: 위의 예는 어디에도 없습니다..

    우리는 "조립 된 장치"를 다루기 때문에 아니 시스템이 실제로 개별 디스크에있는 파일 시스템의 일부를 볼 수 있기 때문에 마운트를 위해 디바이스에있는 파일 시스템의 UUID를 사용하십시오 ( "Linux fstab은 무엇이며 어떻게 작동합니까?"안내서에서 다른 유형의 디바이스에 권장 됨). 하려고 노력하다 틀리게 직접 장착하십시오. 이를 극복하기 위해 우리는 마운트를 시도하기 전에 디바이스가 "조립"될 것을 명시 적으로 기다리고 싶습니다. 그리고 우리는 어셈블 된 어레이의 이름 ( "md")을 fstab 이것을 달성하기 위해.
    fstab 파일을 편집하십시오.

    sudo vim / etc / fstab

    그리고 다음 줄을 추가하십시오 :

    / dev / md0 / media / raid10 / ext4 기본값 1 2

    노트: 예제에서 마운트 위치 나 파일 시스템을 변경하면 위의 내용을 적절히 조정해야합니다.

    자동 매개 변수 (-a)와 함께 mount를 사용하여 시스템 부팅을 시뮬레이트하므로 구성이 올바르게 작동하고 시스템이 다시 시작될 때 RAID 장치가 자동으로 마운트된다는 것을 알 수 있습니다.

    sudo mount -a

    이제 매개 변수없이 "mount"명령으로 마운트 된 어레이를 볼 수 있습니다..

    RAID 어레이에 대한 전자 메일 경고

    하드웨어 RAID 어레이와 달리, 소프트웨어 어레이에는 문제가 발생했을 때 경고음을 울리기 시작할 컨트롤러가 없습니다. 따라서 전자 메일 경고는 어레이의 하나 이상의 디스크에 문제가 있는지를 알 수있는 유일한 방법 일 수 있습니다. 가장 중요한 단계.

    "Gmail 또는 SMTP를 사용하여 Linux에서 이메일 알림 설정 방법"지침을 따르고 완료되면 여기로 돌아와서 RAID 특정 단계를 수행하십시오.

    mdadm이 전자 메일을 보낼 수 있는지 확인하십시오.
    아래 명령은 mdadm에게 하나의 전자 메일을 시작하고 종료하도록 지시합니다..

    sudo mdadm --monitor --scan --test --oneshot

    성공하면 배열 상태를 자세히 설명하는 이메일을 받아야합니다..

    시작시 전자 메일을 보내도록 mdadm 구성 설정
    절대적으로 필요한 것은 아니지만 이메일 기능이 계속 작동하고 어레이의 상태를 알려주기 위해 컴퓨터에서 수시로 업데이트하는 것이 좋습니다. 이 설정은 신생 기업에만 영향을 미치므로 이메일에 압도 당하지는 않을 것입니다 (서버에있는 서버는 많지 않아야 함).
    mdadm 구성 파일을 편집합니다.

    sudo vim / etc / default / mdadm

    더하기 -테스트 매개 변수를 DAEMON_OPTIONS 섹션을 다음과 같이 만듭니다.

    DAEMON_OPTIONS = "- syslog - 테스트"

    "in the loop"를 확인하기 위해 기계를 재시동 할 수 있지만 반드시 필요하지는 않습니다.

    삼바 구성

    Linux 서버에 SaMBa를 설치하면 Windows 파일 서버처럼 작동 할 수 있습니다. 따라서 Windows 클라이언트에서 사용할 수있는 Linux 서버에서 호스팅하는 데이터를 얻으려면 SaMBa를 설치하고 구성하십시오..
    SaMBa의 패키지 이름은 SMB (Service Message Block)라고 불리는 파일 공유에 사용되는 Microsoft의 프로토콜에 익숙하지 않습니다..

    이 안내서에서 서버는 테스트 목적으로 사용되므로 공유에 대한 액세스를 활성화합니다 없이 암호가 필요하면 설치가 완료되면 권한을 설정하는 방법에 대해 더 자세히 알아볼 수 있습니다..

    또한 권한이없는 사용자를 만들어 파일의 소유자로 만드는 것이 좋습니다. 이 예제에서는이 작업을 위해 만든 "geek"사용자를 사용합니다. 사용자를 생성하고 소유권 및 권한을 관리하는 방법에 대한 설명은 "Ubuntu Server 9.10에서 새 사용자 만들기"및 "Linux에서 사용자 및 그룹 관리를위한 초보자 안내서"에서 찾을 수 있습니다.

    Samba 설치 :

    aptitude install samba

    samba 구성 파일을 편집하십시오.

    sudo vim /etc/samba/smb.conf

    아래에 파일을 추가하여 마운트 지점 "/ media / raid10 / general"에 대한 액세스 권한을 부여하는 "general"이라는 공유를 추가하십시오.

    [일반]
    경로 = / 미디어 / raid10 / 일반
    강제 사용자 = 괴짜
    힘 그룹 = 괴짜
    읽기 전용 = 아니요
    마스크 생성 = 0777
    디렉토리 마스크 = 0777
    손님 전용 = 예
    손님 ok = 예

    위의 설정은 공유를 주소 지정 가능하게합니다 없이 누구에게나 비밀 번호와 파일의 기본 소유자가 사용자 "괴짜".

    참고로이 smb.conf 파일은 작동중인 서버에서 가져 왔습니다..

    설정이 적용되도록 samba 서비스를 다시 시작합니다.

    sudo /etc/init.d/samba restart

    완료되면 시험지 명령을 사용하여 samba 서버에 적용된 설정보기.
    이제 서버는 다음을 사용하여 모든 창에서 액세스 할 수 있어야합니다.

    \ server-name 일반

    문제 해결

    문제를 해결해야하거나 어레이에서 디스크가 실패한 경우 mdadm 치트 시트를 참조하는 것이 좋습니다 (그게 내가하는 일입니다 ...).

    일반적으로 디스크가 고장 나면 어레이에서 "제거"하고, 시스템을 종료하고, 교체 된 드라이브로 교체 한 다음 적절한 디스크를 작성한 후 새 드라이브를 어레이에 "추가"해야한다는 점을 기억해야합니다 필요한 경우 레이아웃 (파티션).

    완료되면 어레이가 재구성되고 진행 상황을 관찰 할 수 있습니다.

    watch -d cat / proc / mdstat

    행운을 빕니다! :)

    참고 문헌 :
    mdadm 치트 시트
    RAID 레벨 분해
    리눅스 RAID10 설명
    mdadm 명령 맨 페이지
    mdadm 구성 파일 설명서 페이지
    파티션 제한 설명


    소프트웨어 RAID를 사용하면 비용이 많이 들지 않을 것입니다 ... 단지 당신의 목소리 ;-)