리눅스 / 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

같은 카테고리의 다른 글

리눅스 / 명령어 / history – 이전에 실행했던 명령어 목록 출력하는 명령어

리눅스 / 명령어 / history – 이전에 실행했던 명령어 목록 출력하는 명령어

history history는 이전에 실행했던 명령어 목록 출력하는 명령어입니다. history 이전에 실행했던 명령어 목록을 일련번호와 함께 출력합니다. history n 최근 n개의 명령어 목록을 출력합니다. history 10 최근 실행한 10개의 명령어를 출력합니다. !! !!를 입력하고 엔터를 누르면 직전에 실행했던 명령어를 다시 실행합니다. !n 일련번호가 n인 명령어를 실행합니다. !202 번호가 202인 명령어를 실행합니다.

리눅스 / 명령어 / rmdir - 빈 디렉토리 삭제하는 명령어

리눅스 / 명령어 / rmdir - 빈 디렉토리 삭제하는 명령어

rmdir rmdir은 빈 디렉토리를 삭제하는 명령어입니다. Remove the DIRECTORY(ies), if they are empty. 사용법 rmdir directory rmdir a a 디렉토리를 삭제합니다. 비어있다면 삭제를 하고, 그렇지 않다면 rmdir: failed to remove ‘a’: Directory not empty 를 출력합니다. rmdir --ignore-fail-on-non-empty directory 디렉토리가 비어있지 않아도 메시지를 출력하지 않습니다. rmdir -v directory rmdir -v * 현재 디렉토리 안에 있는 모든 비어있는 디렉토리를 삭제합니다. v 옵션을 넣으면 작업 결과를 ...

리눅스 / 명령어 / cat / 파일 내용 출력하는 명령어

리눅스 / 명령어 / cat / 파일 내용 출력하는 명령어

다음과 같은 두 개의 파일이 있다고 할 때 file1 1-1 1-2 1-3 file2 2-1 2-2 2-3 cat filename cat 뒤에 파일 이름을 넣으면 파일 안의 내용을 보여줍니다. # cat file1 1-1 1-2 1-3 파일 이름을 연달아 넣으면 연속하여 파일의 내용을 보여줍니다. # cat file1 file2 1-1 1-2 1-3 2-1 2-2 2-3 cat filename -n -n 옵션을 붙이면 줄번호를 보여줍니다. # cat -n file1 1 1-1 2 1-2 3 1-3 # cat -n file1 file2 1 1-1 2 1-2 3 1-3 4 2-1 5 2-2 6 ...

리눅스 / 스왑 메모리(Swap Memory) 늘리는 방법

리눅스 / 스왑 메모리(Swap Memory) 늘리는 방법

리눅스 시스템이 메모리를 다 사용하면 프로그램이 멈추는 등 문제가 발생합니다. 이때 스왑 메모리(Swap Memory) 늘려서 메모리 부족 문제를 해결할 수 있습니다. 스왑 파일 만들기 fallocate -l 2G /jb-swap 적당한 디렉토리에 적당한 이름의 파일을 적당한 크기로 만듭니다. 여기서는 루트 디렉토리에 jb-swap이라는 파일을 2G의 크기로 만들겠습니다. chmod 600 /jb-swap root만 읽고 쓸 수 있게 권한 설정을 합니다. mkswap ...

리눅스 / rsync / 동기화 프로그램

리눅스 / rsync / 동기화 프로그램

rsync rsync는 동기화 프로그램입니다. 백업할 때 유용하게 사용할 수 있습니다. 사용법 기본 rsync -avz /abc/def /xyz abc 디렉토리 안의 def 디렉토리를 xyz 디렉토리 안에 동기화시키라는 뜻입니다. 처음 실행하는 것이라면 xyz 디렉토리 안에 def 디렉토리가 복사됩니다. 다시 실행시키면 /abc/def 디렉토리의 내용 중 수정되거나 추가된 것만 /xyz/def 디렉토리로 복사됩니다. /abc/def에서 삭제된 내용은 /xyz/def에 반영되지 않습니다. rsync -avz /abc/def/ /xyz def 뒤에 /를 ...

리눅스 / 명령어 / mkdir - 디렉토리 만드는 명령어

리눅스 / 명령어 / mkdir - 디렉토리 만드는 명령어

mkdir은 make directory의 약자로, 디렉토리를 만드는 명령어입니다. abc 디렉토리를 만듭니다. mkdir abc abc 디렉토리 아래에 def 디렉토리를 만듭니다. 만약 abc 디렉토리가 없다면 def 디렉토리를 만들 수 없다는 메시지가 나옵니다. mkdir abc/def p 옵션을 붙이면 abc 디렉토리가 없어도 abc 디렉토리를 만든 후에 def 디렉토리를 만듭니다. mkdir -p abc/def

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

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

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

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

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

Linear RAID Linear RAID를 이용하면 여러 개의 하드디스크를 하나의 하드디스크처럼 사용할 수 있습니다. 예를 들어 2TB, 1TB 하드디스크를 Linear RAID로 묶으면 3TB 하드디스크 하나를 사용하는 것처럼 작동합니다. 환경 CentOS 7를 OS로 한 컴퓨터에 2GB, 1GB 하드디스크 두 개를 추가하였습니다. 컴퓨터에 장착된 하드디스크 목록은 ls 명령어로 확인할 수 있습니다. # ls -l /dev/sd* brw-rw----. 1 ...

리눅스 / 명령어 / du - 디렉토리와 파일 용량 확인하는 명령어

리눅스 / 명령어 / du - 디렉토리와 파일 용량 확인하는 명령어

du는 disk usage의 약자로 디렉토리(폴더)와 파일의 용량을 출력해주는 명령어입니다. du 디렉토리명 디렉토리와 모든 하위 디렉토리의 용량을 표시해줍니다. 다음과 같이 명령하면 etc 디렉토리와 그 하위 디렉토리의 사용량이 출력됩니다. 단위는 kbyte입니다. du /etc du -s 디렉토리명, du -sh 디렉토리명 선택한 디렉토리만의 용량을 알고 싶으면 s 옵션을 붙입니다. du -s /etc 용량이 읽기 편한 단위로 나오게 하려면 h 옵션을 붙입니다. du -sh /etc du -sh ...

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

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

사용자 조회 모든 사용자를 출력합니다. # 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와는 달리 사용자 홈 디렉토리를 자동으로 만들고, 비밀번호 ...