RAID
LVM과 RAID
- LVM : 여러개의 하드디스크를 하나처럼 사용
- RAID : (Redundant Array of Inexpensive /Independent Disk)
- 서버에 RAID 컨트롤러를 장착해야한다(RAID 장착가능 여부 확인)
- 디스크는 같은 회사의 같은 사이즈의 디스크로 준비하는 것이 좋다(특성이 다르기 때문)
- 디스크는 항상 스페어 디스크를 가지고 있어야 한다.
- 결함 허용 때문에 RAID를 사용한다.
- 결함허용 : 디스크가 망가져도 교체만하면 내용은 살아있다.
RAID 의 종류
- 하드웨어 RAID
- 소프트웨어 RAID
- 컴퓨터 설정에서 RAID 설정을 해줘야한다.
https://www.seagate.com/kr/ko/manuals/network-storage/business-storage-nas-os/raid-modes/
RAID 모드 | Seagate 대한민국
www.seagate.com
RAID0 (Stripping) : 읽기와 쓰기 성능 향상(서로 데이터를 나눠가진다. )
RAID1 (Mirroring) 디스크 필요(2개) : 두 디스크가 같은 데이터를 가져간다(복사,결함 허용)
==> 백업과 같은 내용으로 A디스크가 망가져도 B디스크에 같은 내용이 있기 때문에 복구가 가능하다.
RAID5 디스크 필요(3개) : RAID0의 발전된 형태로써 "결함허용"이 안되던 RAID0 에 "결함허용" 을 더한 것이다.
==>패리티 정보를 통해서 결함허용을 한다.
ex) 결함허용은 0과1로 이루어지는데 A,B,C 디스크가 있다면 A가 1 B는 죽고 C도 1 이라고 한다면 자연스럽게 B는 0이된다는 논리이다.
RAID6 디스크 필요(4개) : 4개이상의 디스크를 사용해서 중복 패리티를 사용하여 정확도를 올린다.
RAID 실습
※mdadm : CentOS 에서 RAID 장치를 생성/관리 하는 명령어
옵션
--create /dev/[RAID 생성할 곳 파일명]
# [RAID 생성할 곳 파일명] 장치에 RAID 생성
--level=linear
# Linear RAID 지정 . 0은 RAID0 1은 RAID1
--raid-devices=2 /dev/sdb1 /dev/sdc1
# RAID에 사용할 devices 갯수 지정 뒤에는 경로
--stop /dev/[RAID 생성할 곳 파일명]
# RAID 장치인 /dev/[RAID 생성할 곳 파일명] 중지
--run /dev/[RAID 생성할 곳 파일명]
#중지 되었던 [RAID 생성할 곳 파일명] 다시 실행
--detail /dev/[RAID 생성할 곳 파일명]
#[RAID 생성할 곳 파일명] 상세 내역 출력
- 디스크를 준비한다.
ls -l /dev/sd*
# sd로 시작하는 것 전부 출력
fdisk /dev/sdb
#sdb 설정
####
command : n =>(new)새로운 파티션을 만들겠다.
Select : p => primary 로 선택 (e => extended)
Partition number : 1 => 파티션번호 sdb[]
First sector : 엔터 => 시작섹터 번호(하나의 디스크를 다 쓸것이기 때문에 엔터)
Last sector : 엔터 => 위와 동일
Command : t => 파일 시스템 유형
Hex Code : fd => 유형번호/ LVM => 8e
Command : p => 설정 내용 확인
Command : w => 설정 저장
####
ls -l /dev/sd*
#올바르게 설정이 됬는지 확인
dev 폴더 안에 논리 볼륨 생성 / 논리볼륨 포멧
mdadm --create /dev/md7 --level=linear --raid-devices=2 /dev/sdb1 /dev/sdc1
#dev 안에 md7 이라는 RAID 파일을 만든다. level은 RAID 몇을 할껀지 지정 하고 RIAD에 사용하는
#devices는 2개를 사용하며 경로는 /dev/sdb1 /dev/sdc1 이다
mkfs.ext4 /dev/md7
mount 시킬 준비
mkdir /raid_l
#md7 과 mount 시킬 dir
mount /dev/md7 /raid_l
#dev안에 md7과 raid_l 을 연결(mount)시킨다.
df 명령어로 확인
※방금 만든 작업이 RAID Linear 이다 (가장 기본적으로 disk 용량만 증가 시키는 것이기 때문에 굳이 사용하지는 않는다)
RAID0 을 만들때 다른 점 :
- mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdd1 /dev/sde1
RAID1 과 RAID5 을 만들때는 경고가 발생하는데 이 경고는 RAID1 과 RAID5는 부팅장치로는 사용이 불가능 하다는 경고 이기 때문에 y를 눌러서 그냥 넘어가도 된다.
LVM
LVM 이란 : Logical Volume Manager 의 약자로 논리 하드 디스크 관리자 라는 의미 이다.
LVM 은 여러개의 하드디스크를 합쳐서 하나로 만들고 필요에 따라서 다시 나눌수가 있다.
- 물리볼륨(Phsical Volume) : /dev/sda1 , /dev/sdb1 등 파티션을 말한다.
- 불륨그룹(Volume Group) : 물리 볼륨을 합쳐서 1개의 물리그룹으로 만든 것이다.
- 논리 볼륨(Logical Volume) : 볼륨 그룹을 1개 이상으로 나눈 것으로 논리적 그룹이라고도 한다.
LVM에서 알아둘 것
- LV : 여러 디스크를 모아서 하나로 만들고 그 안에서 다시 파티션을 나누는것
- LE : LV가 가지고 있는 블록 사이즈
- PV : 한 디스크에서 나눈 파티션
- PE : PV를 구성하는 일정한 크기의 블록(4MB)
- VG : PV들의 집합 LV를 할당할 수 있는 공간
LVM 실습
선행작업으로는 디스크를 할당하고 사용이 가능 하도록 포멧을 해줘야 한다.
ls -l /dev/sd*
# sd로 시작하는 것 전부 출력
fdisk /dev/sdb
#sdb 설정
####
command : n =>(new)새로운 파티션을 만들겠다.
Select : p => primary 로 선택 (e => extended)
Partition number : 1 => 파티션번호 sdb[]
First sector : 엔터 => 시작섹터 번호(하나의 디스크를 다 쓸것이기 때문에 엔터)
Last sector : 엔터 => 위와 동일
Command : t => 파일 시스템 유형
Hex Code : 8e => 유형번호/ LVM => 8e
Command : p => 설정 내용 확인
Command : w => 설정 저장
####
ls -l /dev/sd*
#올바르게 설정이 됬는지 확인
물리적 볼륨 생성(PV)
pvcreate /dev/sdb1
#물리적 볼륨 생성
vgcreate [그룹명] /dev/sdb1 /dev/sdc1
#Volume Group을 생성해서 sdb1과 sdc1을 소속시킨다.
vgdisplay
#그룹이 잘 만들어 졌는지 확인
lv생성
lvcreate --size 1G --name myLG1 myVG
# lv를 만든다. 1G의 크기로 myVG아래 myLG1생성
lvcreate --size 3G --name myLG2 myVG
# lv를 만든다. 3G의 크기로 myVG아래 myLG1생성
lvcreate --extents 100%FREE --name myLG3 myVG
# 나머지를 전부 myVG아래 myLG3 생성
ls -l /dev/myVG #생성된것을 확인
포멧 진행
mkfs.ext4 /dev/myVG/myLG1
# 포멧 진행
mkfs.ext4 /dev/myVG/myLG2
# 포멧 진행
mkfs.ext4 /dev/myVG/myLG3
#포멧 진행
마운트(연결)
mount /dev/myVG/myLG1 /root/lvm1
mount /dev/myVG/myLG2 /root/lvm2
mount /dev/myVG/myLG3 /root/lvm3
테스트를 위해 아무 파일이나 붙여서 넣어준다.
cp /boot/vmlinuz-3* /root/lvm1/testfile
cp /boot/vmlinuz-3* /root/lvm2/testfile
cp /boot/vmlinuz-3* /root/lvm3/testfile
재부팅 후에도 사용이 가능 하도록 fstab에 등록 해준다.
/dev/myVG/myLG1 /lvm1 ext4 defaults 0 0
/dev/myVG/myLG2 /lvm2 ext4 defaults 0 0
/dev/myVG/myLG3 /lvm3 ext4 defaults 0 0
df로 확인
RAID 디스크 빼고 하는거 숙제로 해볼 것(망가졌을때 복구가 가능한지)
쿼터
특정 사용자에게 정해진 용량을 할당 하는 것(사용자 별로 일정한 사이즈(공간)을 할당 한다.
ex) 네이버 클라우드가 일반 사용자에게 처음에 5giga를 주는 것
쿼터 실습 해볼 것
fdisk /dev/sdb
#디스크 설정 디스크 설정과 포멧 / mount할 dir 생성하는 부분은 동일 하기 때문에 pass
/dev/sdb1 /userHome ext4 defaults 0 0
#재부팅해도 삭제 되지 않도록 fstab에 저장
useradd -d /userHome/jo jo
#userHome 에 jo유저를 생성
useradd -d /userHome/ba ba
#userHome 에 ba유저를 생성
passwd jo
passwd ba
#password 생성
/dev/sdb1 /userHome ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv0 0 0
#재부팅해도 삭제 되지 않도록 fstab에 저장
mount --options remount /userHome
#마운트 해제
mount
#마운트 하여 정보 확인
quotaoff -avug
user quotas turned off
quotacheck -augmn
rm -fr aquota.*
quotacheck -augmn
touch aquota.user aquota.group
chmod 600 aquota.*
quotacheck -augmn
quotaon -avug
user quotas turned on
edquota -u jo
리눅스에서 네트워크 설정(기초)
기본지식
- nos : network OS
- 서버(NIC-L1,MAC-Ehternet-IP-services)
- 서버 : L4~L7
- 네트워크 : L1~L3
- 서비스 : 다수에게 제공하기 위해 백그라운드에서 실행중인 프로그램 (항상 백그라운드에서 실행 중이여야 한다)
- 네트워크 : 서버와 클라이언트를 이어주는 길
- 서버와 클라이언트는 이 네트워크라는 길을 이용하기 위해서 특정 장비가 필요하다(장비 : NIC)
서버의 역할
- 웹서버 : 웹을 서비스 <<<---------------->>> 웹 클라이언트(사용자 / 서비스 요청자)
- 메일 서버 : 메일 서비스 <<<----------------->>> 메일 클라이언트(사용자 / 서비스 요청자)
리눅스에서 네트워크 설정 (명령어)
ip link : 네트워크 인터페이스를 표시 하고 수정
- add : 작동할 물리적 장치를 지정(추가)
- set : 장치 속성을 변경
- delete : 가상링크를 삭제
- show : 장치의 속성을 출력
proc/net : 네트워킹 레이어에 대한 많은 파일이 있다.
netstat : 네트워크의 연결상태 , 라우팅테이블 , 인터페이스 상태들을 출력한다.
etc/hosts : hostname 에 대한 ip address를 매핑해주는 역할
hostfile => hostname 과 ip address 매핑 정보를 가지고 있는 파일
lshw(하드웨어) -C network : 하드웨어 상태 정보 출력 (lshw -C memory)
ls / etc/resolv.conf : DNS 클라이언트(DNS 위치값을 가지고있다)
※클라이언트가 도메인네임을 사용하면 PC는 hostfile에서 등록이 되어있는지 확인을 하고 없으면 DNS resolv에서 주소를 확인한다. ===> 아이피로는 통신이 되는데 도메인 네임으로는 통신이 안될때 꼭 확인
/etc/sysconfig/network-scripts/ifcfg-ens33 : 아이피 설정을 변경하는 파일
※ONBOOT = "yes" : 시스템이 부팅될때 ens33이 활성화 된다.
※BOOTPROTO : none / static (수동으로 ip설정) dhcp(자동으로 아이피 설정)
dhcp로 ip를 받아오려면 VMware에서 dhcp가 체크 되어있는지 확인 해야한다.
※ip address show ens33 으로 ens33 설정 정보 확인(3계층 정보)
※ip link show ens33 으로 2계층 정보 확인)
※DNS resolv와 ens33 에 둘다 DNS 주소가 적혀있는데 굳이 두곳이 필요할까?
ens33에 등록된 정보가 resolv 파일에 적용이 되어있다.
하지만 resolv파일에 등록을 임의로 해주게 된다면 ens33에서 주석 처리 되어있다 해도 통신이 가능하다.
그리고 resolv에 dns server는 두개도 등록이 가능하다.
nameserver 192.168.108.2
nameserver 8.8.8.8
첫번째 네임서버를 확인하고 막혀있다면 두번째 dns 서버로 가서 확인한다.