2015. 4. 26. 01:03

RAID


레이드는 하드웨어 레이드와 소프트웨어 레이드 2가지로 나뉘는데 하드웨어 레이드는 OS이전에 처리되고 소프트웨어 레이드는 OS단계에서 처리 된다. 소프트웨어 레이드가 하드웨어 레이드보다 안정성과 성능이 떨어지지만 구축비용이 적게 든다.

레이드는 복수개의 하드를 이용해서 데이터를 저장하는 방식이다. 데이터를 백업하거나 용량증가, 속도증가를 위해 많이 쓰이며 여러 종류의 레이드방식이 있다.

레이드는 크게 3개를 쓰는데 RAID-0, RAID-1, RAID-5이다.

레이드0(스트라이핑)은 2개 이상의 하드로 구성되는데 자료를 분산해서 저장하기 때문에 속도가 빠르다. 예를 들면 데이터1,2,3,4가 있으면 데이터 1,3은 하드0번에 데이터 2,4는 하드1번에 저장시키고, 자료를 가져 올 때 동시에 데이터를 두 하드에서 가저오기 때문에 좀 더 빠르게 데이터 통신 속도를 이용 할 수 있다. 데이터 속도는 빠르지만 둘 중 아무 하드가 망가지면 데이터 복구 불능이다.

용량은 1G+1G=2G 형식이다.

레이드1(미러링)은 2개 이상의 하드로 구성되는데 하드0번은 주 장치로 쓰고 하드1번은 하드0번의 백업 장치로 쓰인다. 하드0번이 저장된 데이터를 하드1번이 모두 백업 받는다. 이로 인해 하드하나가 망가저도 백업 데이터가 있기 때문에 데이터 손실을 예방 할 수 있다.

용량은 1G+1G=1G 형식이다.

레이드5(스트라이핑 패리티)는 3개 이상의 하드로 구성되는데 레이드0의 속도를 살리며 페리티비트(데이터 에러 수정)를 추가해 레이드0의 데이터 손실의 약점을 보안한 것이다.

하드0 하드1 하드2가 있으면 하드0에는 하드1과 하드2의 패리티 정보를 넣고 하드1에는 하드0과 하드1의 패리티정보를 넣고 하드3에는 하드0과 하드2의 패리티 정보를 넣어 데이터를 복구하는 방식이다.

용량은 1G+1G+1G=2G형식이다.

레이드 구성 명령어 형식은

mdadm --create <만들 레이드 장치명> --level=<레이드레벨> --raid-devices=<레이드할 때 쓸 장치 개수> <레이드시 쓸 장치명>

or

mdadm -C <만들 레이드 장치명 -l <레이드레벨> -n <레이드 할 때 쓸 장치 개수> <레이드시 쓸 장치명>

--------------------------------------------------------------------

레이드 0구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb1, sdc1을 이용하고(다른것을해도 무방) 용량은 512M두개를 이용해 1G용량인 레이드0을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1):1

Last cylinder of +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y// 위 정보로 레이드를 하려면 y

# mdadm --detail --scan// 레이드 잘구성되었는지 확인

ARRAY /dev/md0 level=raid0 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md0// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid0// 마운트해줄 폴더 생성

# mount /dev/md0 /raid0// 사용을 위해 마운트

# mount | grep md0// 확인

/dev/md0 on /raid0 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md0// 용량 확인

/dev/md0 1.1G 19M 950M 2% /raid0// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 1구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb2, sdc2를 이용하고(다른것 을 해도 무방) 용량은 512M두개를 이용해 512M용량인 레이드1을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// 파티션형식은 2번을 변경해줄것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// sdc2의 파티션 형식을 변경할 것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb2 /dev/sdc2

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

continue Creating array? y// 위 정보로 레이드를 하려면 y

# mdadm -D --scan | grep md2// 레이드 잘구성되었는지 확인

ARRAY /dev/md2 level=raid1 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md2// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid1// 마운트해줄 폴더 생성

# mount /dev/md2 /raid1// 사용을 위해 마운트

# mount | grep md2// 확인

/dev/md2 on /raid1 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md2// 용량 확인

/dev/md2 502M 11M 466M 3% /raid1// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 5구성

먼저 파티션3개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sda3, sdb3, sdc3을 이용하고(다른것 을 해도 무방) 용량은 512M세개를 이용해 1G용량인 레이드5을 구성한다.

# fdisk /dev/sda

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (6323-30401, default 6323): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (6323-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdb

Command m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4)3

First cylinder (127-30401, defaul 127):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (127-30401, default 127): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm -C /dev/md1 -l 5 -n 3 /dev/sda3 /dev/sdb3 /dev/sdc3

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y // 위 정보로 레이드 구성하려면 y

# mdadm -D --scan | grep md1

ARRAY /dev/md1 level=raid5 num-devices=3// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md1// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid5// 마운트해줄 폴더 생성

# mount /dev/md1 /raid5// 사용을 위해 마운트

# mount | grep md1// 확인

/dev/md1 on /raid5 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md1// 용량 확인

/dev/md1 1.1G 19M 950M 2% /raid5// 생각대로 되었는지 확인

--------------------------------------------------------------------

같은 명령어

mdadm --detail = mdadm -D

mdadm --create = mdadm -C

mdadm --level = mdadm -l

mdadm --raid-devices = mdadm -n

레이드를 정지하고 싶을때

mdadm -S <장치명>

# mdadm -S /dev/md0// md0 정지

'OPS > LInux' 카테고리의 다른 글

init  (0) 2015.04.26
send mail  (0) 2015.04.26
quota  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:02

quota


사용자 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdb5/kimext3defaults,usrquota0 2

.

.

.

--------------------------------------------------------------------

사용자 쿼터는 usrquota 옵션을 추가

# mount -o remount /kim// usrquota 적용되게 리마운트 해줌

# mount | grep kim// mount 명령어로 재대로 되 엇나 확인

/dev/sdb5 on /kim type ext3 (rw,usrquota)// usrquota있으면 성공

# touch /kim/aquota.user// 쿼터 정보파일인 aquota.user을 생성

# chmod 600 /kim/aquota.user// 보안을 위해 퍼미션 600으로 변경

# quotacheck -am// 쿼터를 체크해서 aquota.user에 파일저장

# quotaon /kim// kim 디렉토리의 쿼터를 시작

# edquota -u kim// kim 유저의 쿼터설정 -u는 사용자를 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for user kim (uid 500):// uid500의 kim이라는 사용자 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터 설정은 blocks와 inodes로 나누어 지고 soft와 hard는 각 blocks와 inodes의 옵션

blocks는 용량을 뜻하고 사용하고 있는 용량을 나타내줌 blocks의 soft는 사용자가 사용할 수 있는 용량을 설정 할 수 있고 유예기간동안은 blocks의 hard까지는 더 사용할 수 있음 blocks의 hard는 사용자가 사용할 수 있는 절대적인 용량을 설정

inodes는 파일의 개수를 뜻 뜻하고 사용 중인 파일의 개수를 나타내줌 inodes의 soft는 사용자가 사용할 수 있는 파일의 개수를 설정 할 수 있고 유예기간 동안은 hard의 값 내에서는 더 사용할 수 있음 inodes의 hard는 사용가능한 절대적인 파일 개수를 설정

쿼터의 용량단위는 KB(킬로바이트)

# edquota -t// 쿼터 유예기간 설정하기

--------------------------------------------------------------------

Gracd period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

FilesystemBlock grace periodInode grace period

/kim7days7days

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

Block grace period는 Block(용량)의 유예기간 설정 Inode grace period는 Inode(파일수)의 유예기간 설정 soft값을 더 쓴 상태에서 유예기간이 지나면 계정은 사용중지

옵션:sec(초), min(분), hour(시), day(일), month(달)

#repquota -a// 쿼터 상태 확인

---------------------------------------------

*** Report for user quotas on device /dev/hda5

Block grace time: 7days; Inode grace time: 7days

Block limitsFile limits

Userused soft hard grace used soft hard grace

--------------------------------------------------------------------

root -- 341120 0 40 0

kim -- 240 0 60 0

---------------------------------------------

첫 번째 줄 /dev/hda5는 쿼터 한 파티션을 뜻 하고 두 번째 줄 7days는 유예기간을 뜻 함

그리고 네 번째 줄은 used는 사용 중인 공간/파일 수 soft는 설정해준 soft값 hard는 설정해준 hard값 grace는 남은 유예기간(soft값이 초과되면 그 때 부터 표시)

# quota -u kim// 특정 사용자의 쿼터를 보고 싶을 때

※ repquota -a 나 quota kim을 했는데 kim의 쿼터상태가 안보일 때는 kim이 용량을 안 써서 그렇다 쿼터 된 디렉토리에 kim으로 파일을 쓰고 repquota등을 처 보면 나온다.

그룹 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdc5/grext3defaults,grpquota0 2

--------------------------------------------------------------------

그룹 쿼터는 grpquota 옵션을 추가

# mount -o remount /gr// grpquota 적용되게 리마운트 해줌

# mount | grep gr// mount 명령어로 재대로 되 엇나 확인

/dev/sdbc on /gr type ext3 (rw,grpquota)// grpquota있으면 성공

# touch /gr/aquota.group// 쿼터 정보파일인 aquota.group을 생성

# chmod 600 /kim/aquota.group// 보안을 위해 퍼미션 600으로 변경

# quotacheck -avug// 쿼터를 체크해서 aquota.group에 파일저장

# quotaon /gr// gr 디렉토리의 쿼터를 시작

# edquota -g king// king 그룹의 쿼터설정 -g는 그룹을 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for group king (uid 1005):// uid1005의 king이라는 그룹 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터의 용량단위는 KB(킬로바이트)

쿼터를 확인하려면

quota -g king// 특정 그룹의 쿼터를 보고 싶을때

Disk quotas for group king (gid 1005):

Filesystemblocksquotalimitgracefiles quota limit grace

/dev/sdc5 8 10241024 2 0 0

※ 쿼터가 적용되는 것은 ls -l 명령을 내렷을 때 그룹 이름으로 따짐 그러니 메인그룹으로 쿼터를 따진다는 뜻 lee란 이용자가 lee가 메인그룹이고 king이 보조그룹이었는데 그냥 파일을 만들시 파일 소유권은 lee:lee로 되는데 이럴시 이 파일은 쿼터에 적용 안 됨

'OPS > LInux' 카테고리의 다른 글

send mail  (0) 2015.04.26
raid  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:01

LVM


용어

PV : 물리적 파티션을 뜻함 LVM을 할려 면 장치(/dev/sda)를 PV로 바꿔 줘야함 예를 들면 /dev/sda1을 pv형태로 바꾸면 /dev/sda1이 PV임

VG : PV를 묶은 것 그러니 LVM은 파티션 여러 개를 붙여 쓰는것 이니 PV를 여러 개 묶어 VG로 구성해서 사용

LV : VG의 파티션 그러니 VG가 sda라면 LV는 sda1임

그러니 정리하면 PV가 모여 VG를 이루고 VG는 LV란 파티션을 가짐

명령어 형식

pvcreate <장치명>// 장치를 PV로 만듬

vgcreate <VG그룹이름> <PV> <PV>// PV와 PV를 이용해 VG를 생성

lvcreate -L <g단위용량> <VG그룹이름> -n <만들 LV이름>

-> 용량을 정해 VG의 파티션인 LV를 생성

실습 : sdb1 5G와 sdc1 5G를 통해 debi_vg 라는 VG 10G를 구성 하고, 2gdivi_lv라는 2g LV를 구성한다.

# fdisk /dev/sdb// sdb1을 lvm 형태로 생성 과정

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +5120M

Command (m for help): t

Hex code (type L to list codes): 8e

Command (m for help): w

# fdisk /dev/sdc// sdc1을 lvm 형태로 생성 과정

Command (m for help): n

Command action

eextended

pprimary partiton (1-4)

p

Partiton number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +5120M

Command (m for help): t

Hex code (type L to list codes): 8e

Command (m for help): w

# pvcreate /dev/sdb1// /dev/sdb1을 PV로 만들어줌

Physical volume "/dev/sdb1: successfully created// 이렇게 뜬다면 성공

# pvcreate /dev/sdc1// /dev/sdc1을 PV로 만들어줌

Physical volume "/dev/sdb1: successfully created

※ PV를 삭제시 pvremove 장치명(/dev/sdb1)을 입력하고 PV를 볼려면 pvdisplay를 입력

# vgcreate debi_vg /dev/sdb1 /dev/sdc1

-> /dev/sdb1과 /dev/sdc1이란 PV를 이용해 debi_vg라는 VG를 형성

Volume group "debi_vg" successfully created// 이렇게 뜬다면 성공

※ VG를 삭제시 vgremove VG이름(debi_vg)을 입력하고 VG를 볼려면 vgdisplay를 입력

# lvcreate -L 2g debi_vg -n 2gdebi_lv// debi_vg에서 2G를 할당해 2gdevi_lv를 생성

Logical volume "2gdebi_lv" created

※ LV를 삭제시 lvremove LV경로(/dev/debi_vg/2gdebi_lv)를 입력하고 LV를 볼려면 lvdisplay를 입력

이제 나눈 LVM을 쓰기위해 포맷하고 마운트 한다면

# mkfs -t ext3 /dev/debi_vg/2gdebi_lv

# mount /dev/debi_vg/2gdebi_lv /mnt

옵션

VG를 만들 때 -s 옵션을 쓰면 PE크기를 정할 수 있음 기본 값은 4M

VG를 확장 시킬 때 # vgreduce <VG그룹> <더할 PV>

ex) # vgreduce debi_vg /dev/sdc2

VG를 축소 시킬 때 # vgreduce <VG그룹> <뺄 PV>

ex) # vgreduce debi_vg /dev/sdc2

LV이름을 바꿀 때 # lvrename <기존이름> <바꿀이름>

ex) # lvrename /dev/debi_vg/2gdebi_lv /dev/debi_vg/reallv

LV를 확상 시킬 때 # lvextend -L <추가용량> <LV이름>

ex) # lvextend -L +2g /dev/debi_vg/2gdebi_lv

LV를 축소 시킬 때 # lvreduce -L <뺄 용량> <LV이름>

ex) # lvreduce -L -1g /dev/debi_vg/2gdebi_lv

파일 이용해 복구

# vgchange -a n debi_vg # vgcfgrestore -f /etc/lvm/backup/debi_vg.conf.1.old -n debi_vg # vgchange -a y debi_vg 

'OPS > LInux' 카테고리의 다른 글

raid  (0) 2015.04.26
quota  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
openVPN  (0) 2015.04.26
Posted by 배주혁
이전버튼 1 ··· 3 4 5 6 7 8 이전버튼