리눅스 / RAID / Linear RAID / Linear RAID 만들기

Linear RAID

Linear RAID를 이용하면 여러 개의 하드디스크를 하나의 하드디스크처럼 사용할 수 있습니다. 예를 들어 2TB, 1TB 하드디스크를 Linear RAID로 묶으면 3TB 하드디스크 하나를 사용하는 것처럼 작동합니다.

환경

CentOS 7를 OS로 한 컴퓨터에 2GB, 1GB 하드디스크 두 개를 추가하였습니다. 컴퓨터에 장착된 하드디스크 목록은 ls 명령어로 확인할 수 있습니다.

[root@localhost ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Jun 12 12:21 /dev/sda
brw-rw----. 1 root disk 8,  1 Jun 12 12:21 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jun 12 12:21 /dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 12 12:21 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jun 12 12:21 /dev/sdc

하드디스크에 파티션 만들기

fdisk 명령어로 sdb 하드디스크에 파티션을 만듭니다. 파티션의 Hex code는 fd로 합니다.

[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x2baef374.

Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303):
Using default value 4194303
Partition 1 of type Linux and of size 2 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): fd
Changed type of partition 'Linux' to 'Linux raid autodetect'

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

sdc 하드디스크도 마찬가지 방식으로 파티션을 만듭니다. 이제 하드디스크 목록은 다음처럼 나옵니다.

[root@localhost ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Jun 12 12:21 /dev/sda
brw-rw----. 1 root disk 8,  1 Jun 12 12:21 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jun 12 12:21 /dev/sda2
brw-rw----. 1 root disk 8, 16 Jun 12 13:01 /dev/sdb
brw-rw----. 1 root disk 8, 17 Jun 12 13:01 /dev/sdb1
brw-rw----. 1 root disk 8, 32 Jun 12 13:03 /dev/sdc
brw-rw----. 1 root disk 8, 33 Jun 12 13:03 /dev/sdc1

fdisk 명령어로 디스크 상태를 다시 확인할 수 있습니다.

[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc

Disk /dev/sdb: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x2baef374

Device Boot Start End Blocks Id System
/dev/sdb1 2048 4194303 2096128 fd Linux raid autodetect

Disk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x687ea347

Device Boot Start End Blocks Id System
/dev/sdc1 2048 2097151 1047552 fd Linux raid autodetect

mdadm 설치

레이드 구성은 mdadm 명령어로 합니다. CentOS를 Minimal로 설치했다면 mdadm 명령어가 없을 수도 있습니다. 다음과 같이 명령하여 설치합니다.

yum install mdadm

두 개의 하드디스크를 하나로 합치기

다음과 같이 명령하여 두 개의 하드디스크를 하나로 인식하도록 합니다.

  • /dev/md1 : 접근할 수 있는 이름입니다. 이름은 /dev/md9처럼 md 뒤에 숫자를 붙여서 만듭니다.
  • --raid-devices=2 : 두 개의 하드디스크를 합치겠다는 뜻입니다.
[root@localhost ~]# mdadm --create /dev/md1 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

이름은 /dev/md/abc처럼 만들 수 있습니다. 하지만 실제로는 /dev/md127로 만들어집니다. /dev/md/abc는 별칭으로 이해하면 됩니다.

정보는 mdadm 명령어로 확인할 수 있습니다.

[root@localhost ~]# mdadm --detail /dev/md1
/dev/md1:
           Version : 1.2
     Creation Time : Thu Jun 13 08:10:57 2019
        Raid Level : linear
        Array Size : 3139584 (2.99 GiB 3.21 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Thu Jun 13 08:10:57 2019
             State : clean
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

          Rounding : 0K

Consistency Policy : none

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : 80f0a9e9:505b6663:69f1703c:0fa1eb23
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       33        1      active sync   /dev/sdc1

포맷하고 마운트하기

/dev/md1를 포맷합니다.

[root@localhost ~]# mkfs.ext4 /dev/md1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
196224 inodes, 784896 blocks
39244 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=805306368
24 block groups
32768 blocks per group, 32768 fragments per group
8176 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

마운트할 폴더를 만듭니다.

[root@localhost ~]# mkdir /jbRaidLinear

마운트합니다.

[root@localhost ~]# mount /dev/md1 /jbRaidLinear

/jbRaidLinear에 3GB의 공간이 생긴 걸 확인합니다.

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root  6.2G  1.2G  5.1G  19% /
devtmpfs                 908M     0  908M   0% /dev
tmpfs                    920M     0  920M   0% /dev/shm
tmpfs                    920M  8.6M  911M   1% /run
tmpfs                    920M     0  920M   0% /sys/fs/cgroup
/dev/sda1               1014M  189M  826M  19% /boot
tmpfs                    184M     0  184M   0% /run/user/0
/dev/md1                 2.9G  9.0M  2.8G   1% /jbRaidLinear

부팅 시 마운트되도록 설정하기

/etc/fstab 파일에...

[root@localhost ~]# vi /etc/fstab

다음을 추가하면 부팅 시 자동으로 마운트됩니다.

/dev/md1 /jbRaidLinear ext4 defaults 0 0

같은 카테고리의 다른 글

Ubuntu / 설치 USB 만드는 방법

Ubuntu / 설치 USB 만드는 방법

ODD가 없는 컴퓨터에 OS를 설치하는 방법은 두가지입니다. 첫번째는 휴대용 ODD를 이용하는 것이고, 두번째는 USB에 설치 파일을 넣어서 이용하는 것입니다. 두번째 방법이 간편하기는 하지만 설치용 USB를 만드는 게 좀 번거롭습니다. 하지만, 우분투(Ubuntu) 설치용 USB는 몇 번의 클릭으로 쉽게 만들 수 있습니다. 우분투 다운로드 원하는 우분투 버전을 다운로드 받습니다. Universal USB Installer 다운로드 다음의 링크에서 Universal USB Installer를 다운로드 ...

Ubuntu 16.04 / 언어 변경하는 방법

Ubuntu 16.04 / 언어 변경하는 방법

우분투를 설치할 때 언어를 정합니다. 그 언어를 계속 사용할 수도 있고 변경할 수도 있습니다. 영어로 설정되어 있는 언어를 한국어로 바꾸어보겠습니다. 현재 언어 확인하기 언어 설정 파일은 /etc/default/locale입니다. 파일을 열어서 언어를 확인할 수 있습니다. # File generated by update-locale LANG="en_US.UTF-8" LANGUAGE="en_US:en" locale 명령어로 현재 언어를 확인할 수도 있습니다. root@Ubuntu:~# locale LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 한국어 설치하기 다음과 같이 명령하여 한국어를 설치합니다. apt-get install language-pack-ko /etc/default/locale을 수정합니다. # File ...

리눅스 / 사용자 / 사용자 조회, 사용자 추가, 사용자 삭제, 사용자 수정

리눅스 / 사용자 / 사용자 조회, 사용자 추가, 사용자 삭제, 사용자 수정

사용자 조회 모든 사용자를 출력합니다. # cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin ... root과 useradd 또는 adduser를 통해 생성한 사용자 계정을 출력합니다. # grep /bin/bash /etc/passwd root:x:0:0:root:/root:/bin/bash jb:x:1000:1000:JB:/home/jb:/bin/bash 사용자 추가 useradd jb 사용자를 만듭니다. useradd jb 사용자 홈 디렉토리도 같이 만들고 싶다면 -d 옵션을 사용합니다. useradd jb -d /home/jbdir jb 사용자의 비밀번호를 만듭니다. passwd jb adduser adduser 명령어로 사용자를 추가할 수 있습니다. useradd와는 달리 사용자 홈 디렉토리를 자동으로 만들고, 비밀번호 ...

Ubuntu 18.04 / phpMyAdmin 설치하는 방법

Ubuntu 18.04 / phpMyAdmin 설치하는 방법

phpMyAdmin phpMyAdmin은 MySQL, MariaDB를 웹브라우저에서 관리할 수 있게 해주는 소프트웨어입니다. Ubuntu 18.04에 phpMyAdmin을 설치하고 설정하는 방법을 알아보겠습니다. 설치 apt install phpmyadmin 설치하는 과정에서 몇 가지 질문을 합니다. 사용하는 웹서버를 선택합니다. 비밀번호를 정하고... 다시 한 번 입력합니다. Yes를 선택하고 진행하면 설치가 끝납니다. 접속 웹브라우저로 서버 주소에 phpmyadmin을 붙여서 접속합니다. MySQL 또는 MariaDB의 사용자명과 암호를 입력해서 로그인하는데... root 계정으로 접속이 불가능할 수도 있습니다. 만약 root으로 ...

Ubuntu 18.04 / 언어 변경하는 방법

Ubuntu 18.04 / 언어 변경하는 방법

현재 언어 확인하기 locale 명령어로 현재 언어가 무엇인지 확인할 수 있습니다. root@ubuntu-1804-server:~# locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 언어 변경하기 사용할 언어를 먼저 설치합니다. 한국어를 사용하고 싶다면 다음과 같이 명령합니다. apt-get install language-pack-ko /etc/default/locale을 열고 다음과 같이 만듭니다. LANG=ko_KR.UTF-8 테스트하기 새로 로그인하거나 재부팅하면 변경한 언어가 적용됩니다. 의미 없는 문자열을 입력해보거나 root@ubuntu-1804-server:~# 123 123: 명령을 찾을 수 없습니다 locale 명령어로 확인할 수 있습니다. root@ubuntu-1804-server:~# locale LANG=ko_KR.UTF-8 LANGUAGE= LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUREMENT="ko_KR.UTF-8" LC_IDENTIFICATION="ko_KR.UTF-8" LC_ALL=

Ubuntu 16.04 / apt-get / 패키지 설치, 제거, 업데이트 등 관리하는 명령어

Ubuntu 16.04 / apt-get / 패키지 설치, 제거, 업데이트 등 관리하는 명령어

우분투(Ubuntu)에서 패키지를 관리하는 명령어가 몇가지 있습니다. 그 중 가장 기본이 되는 것이 apt-get입니다. 많은 옵션이 있는데, 자주 쓰는 몇가지를 정리해보겠습니다. apt-get update 패키지 목록을 갱신합니다. apt-get upgrade 모든 패키지를 최신 버전으로 업그레이드합니다. apt-get install abc abc 패키지를 설치합니다. apt-get remove abc abc 패키지를 삭제합니다. 설정파일은 삭제하지 않습니다. apt-get purge abc abc 패키지를 삭제합니다. remove와 다르게 설정파일도 삭제합니다. 참고로 패키지 검색은 apt-cache로 합니다. abc를 ...

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

CentOS 7 / Apache / 하나의 서버에 여러 사이트 운영하기

하나의 서버에 하나의 사이트만 운영하는 것이 가장 이상적일 것입니다. 하지만 사이트 접속자가 많지 않거나 서버 사양이 훌륭하다면 여러 사이트를 하나의 서버에서 운영하는 게 경제적입니다. CentOS에 Apache 웹서버를 설치하고 운영하는 경우 여러 사이트를 운영할 수 있게 설정하는 방법을 요약해보겠습니다. 네임 서버 설정 각 도메인의 네임 서버의 호스트 IP를 웹서버 아이피로 설정합니다. 디렉토리 만들기 한 서버에 aaa.com과 ...

Ubuntu 18.04 / 빠르게 다운로드하는 방법

Ubuntu 18.04 / 빠르게 다운로드하는 방법

우분투 다운로드 우분투 다운로드는 보통 우분투 홈페이지에서 합니다. 상단의 Downloads 메뉴를 클릭하고 안내를 따라가면 됩니다. 그런데, 우분투 홈페이지를 통해 다운로드를 받으면 전송 속도가 느릴 수 있습니다. 만약 너무 느리다면 가까운 미러 사이트에 직접 접속하여 다운로드해보세요. 빠르게 다운로드를 할 수 있습니다. 카카오 서버 한국이라면 카카오 서버가 빠릅니다. 우분투 페이지로 간 다음 원하는 버전을 선택합니다. 데스크톱 이미지와 ...

리눅스 / 게이트웨이(gateway) 확인하는 방법

리눅스 / 게이트웨이(gateway) 확인하는 방법

리눅스에서 네트워크 정보는 주로 ifconfig, ip addr 명령어로 확인합니다. 그런데, gateway 정보는 나오지 않습니다. 만약 gateway 정보가 필요하다면 route 명령어를 사용합니다.

리눅스 / 명령어 / touch – 빈 파일 만들기, 최종 수정 시간 변경하기

리눅스 / 명령어 / touch – 빈 파일 만들기, 최종 수정 시간 변경하기

touch는 빈 파일 만들거나 파일의 최종 수정 시간을 현재 시간으로 바꾸는 명령어입니다. touch abc.txt abc.txt 파일이 없다면, 내용이 없는 abc.txt 파일을 만듭니다. abc.txt 파일이 있다면, 파일의 최종 수정 시간을 현재로 변경합니다.