정보통신공학과 노선변경기
리눅스 관리 3일차 swap, 볼륨관리, fstab 작성, LV, PV, VG 관련명령어 본문
*2일차 실습복기
파일시스템 지정하고 마운트하는거 무조건 외워야함
sudo fdisk /dev/vdb 파티셔닝확인 == lsblk 명령어
파일시스템 확인 ==> lsblk -f 로 확인 mkfs 명령어
파티셔닝하고 파일시스템 지정하면 uuid가 지정되어 실사용가능
이 후에 마운트지정 mount
마운트 확인 = lsblk, 마운트 해제 = umount /mnt/disk1
마운트지정은 메모리에만 저장되므로 휘발성, 재부팅하면 날아간다.
해결책
/etc/fstab파일시스템을 등록할 수 있는 설정파일 ==를 통해 마운트하면 재부팅해도 마운트된게 남아있다.
mount -a == fstab에 있는
fstab에 작성하는 양식
1)UUID 마운트될 디렉토리(/mnt/disk4) 파일시스템형식(xfs) defaults 0 0
OR
2)파티션 마운트될 디렉토리(/mnt/disk4) 파일시스템형식(xfs) defaults 0 0
cf. sudo lsblk -f | tail -4 >> /etc/fstab == 파티션 UUID 메모장 옮겨놓지 않고 바로 append 시켜놓고 거기서 수행
*스왑메모리
CPU(processor +L2) <-------- > memory(주기억장치) < ---------- > disk(보조기억장치)
보조기억장치에 데이터 저장해놓고 cpu 에서 부팅, 프로그램 연산 시도할 때 디스크의 메모리를 주기억장치로 옮겨주고 메모리의 데이터를 L2(Cache) 에 옮긴다. 캐시가 프로세스와 통신 후 메모리에 다시 보내주는 동작
memory 존재이유 == 보조기억장치의 속도가 느려서
운영체제도 memory에 올라가있어야한다. 용량이 부족해
1 2 3 4 5
메모리에 3 4 5 넣고 disk swap에 1 2 구성
page in:swap => RAM
page out: RAM => swap
**swap 영역을 구성하는 방식
-파티션 방식 : swap 파티션을 구성해준다.
fdisk = > mkswap(mkfs 와 같은역할) 명령어 사용 = > swapon 스왑 활성화(mount 명령어와 같은맥락)
-swap file 구성방식
mkdir 스왑파일 디렉토리 만들어준다 ==> dd 명령어로 swap영역 모든 데이터를 0으로 덮어씌운다. ==> mkswap ==> swapon
영구마운트 방법 ==> mount /etc/fstab
<장치> < swap> <swap> defaults 0 0
free 명령어 memory, swap 보여준다.
*************스왑파티션구성하기 예제 *************
fdisk 들어가서 new 만들어주고 t 로 파티션 들어가서 82번 linux/swap 설정해준다
mkswap /dev/vdb8 == swap으로 포맷해준다.
<영구마운트 vi /etc/fstab /dev/vdb8 swap swap detaults 0 0 작성>
/fstab에서 swap 선언을 해주는데 왜 mkswap 써? == fstab에서는 그냥 지정해놓은걸 불러오는것만 해주는거기 때문이다.
swapon /dev/vdb8 == 스왑파티션 적용 후 마운트 시켜준다.
*************Swap file로 구성하기***********
mkdir /swapdir
dd if=/dev/zero of=/swapdir/swapfile bs=1M count=1024
chmod 600 /swapdir/swapfile
mkswap /swapdir/swapfile
swapon /swapdir/swapfile
/swapdir/swpfile swap swap defualts 0 0 으로 스왑파일 영구마운트
swapoff -a 로 스왑 다 지워준다. swapon -a 로 다시 fstab 내용 반영가능
*VOLUME
fdisk > 파티셔닝 > 파일시스템 > 마운트
**논리볼륨
기존의 파티션으로 디스크 관리 == 유연하게 사용 불가능하다
논리볼륨 사용 == 디스크를 유연하게 사용할 수 있게 만들어준다.
데이터를 저장할 수 있는 볼륨을 생성
확장가능, 제거가능, RAID
**물리볼륨
디스크 파티셔닝으로 생성되는 것
**구성방법
1. 물리 볼륨 생성 > 2. 볼륩 그룹 생성 > 3.논리 볼륨 분리
볼륨그룹
물리볼륨의 집합으로 구성
최소 한개이상 물리볼륨 필요
볼륨그룹 생성시 PE의 크기지정해줘야한다
(PE 기본 4M, 1~256M까지 가능, 2진수 단위로 가능)
구성 실습
파티션 구성 들어가서(fdisk)
type은 8e 헥사코드로 LVM으로 지정해준다. LVM(logical Volume Manager) /dev/vdb9
sudo pvcreate /dev/vdb9 == 물리볼륨 생성
sudo vgcreate vg0 /dev/vdb9 == 볼륨그룹 생성 vg0이라는 볼륨그룹 이름지정 pe 지정안해주면 기본 4M로 지정됨
sudo lvcreate vg0 -n lv1 -L 500M == 논리볼륨 생성 , 볼륨그룹 지정하고, 이름 지정, 용량지정
물리볼륨 확인 명령어 : pvdisplay
볼륨그룹 확인 명령어: vgdisplay
sudo mkfs.xfs /dev/mapper/vg0-lv1 볼륨그룹 위치 찾아서 파일형식지정
sudo mount /dev/mapper/vg0-lv1 /mnt/disk_lv1/ 마운트 해주는것
삭제명령어: pvremove, vgremove, lvremove
*******LVM 실습*********
- 기존의 디스크 제거
PE = 8M
lv01=2G(ext4),lv02=2G(ext3),lv03=4G(xfs),lv04=4G(xfs) LVM 생성
영구 마운트 까지
mounting point 는 알아서 지정
**************************
내가 한거
sudo fdisk dev/vdb 에서 20G 모두 LVM으로 만들었음
sudo pvcreate /dev/vdb1
sudo vgcreate -s 8M vg_test /dev/vdb1
sudo lvcreate vg_test -n lv01 -L 2G
sudo lvcreate vg_test -n lv02 -L 2G
sudo lvcreate vg_test -n lv03 -L 4G
sudo lvcreate vg_test -n lv04 -L 4G
sudo mkfs.ext4 /dev/mapper/vg_test-lv01
sudo mkfs.ext3 /dev/mapper/vg_test-lv02
sudo mkfs.xfs /dev/mapper/vg_test-lv03
sudo mkfs.xfs /dev/mapper/vg_test-lv04
sudo mkdir /mnt/disk_lv01 부터 04까지 생성
vi 편집기 /etc/fstab에서..
/dev/mapper/vg_test-lv01 /mnt/disk_lv01 ext4 defaults 0 0
/dev/mapper/vg_test-lv02 /mnt/disk_lv02 ext3 defaults 0 0
/dev/mapper/vg_test-lv03 /mnt/disk_lv03 xfs defaults 0 0
/dev/mapper/vg_test-lv04 /mnt/disk_lv04 xfs defaults 0 0
입력하고
sudo mount -a
끝
강사님풀이)
vdb1 에 10기가 , vdb2에 5기가 시나리오
sudo pvcreate /dev/vdb1
sudo pvcreate /dev/vdb2
sudo vgcreate vg1 -s 8M /dev/vdb1 /dev/vdb2 == 볼륨그룹으로 합쳐주기
sudo lvcreate vg1 -n lv01 -L 2G
sudo lvcreate vg1 -n lv02 -l 256 == 8M 짜리 256개 > 8*256 =2048 2기가
sudo lvcreate vg1 -n lv03 -L 4G
sudo lvcreate vg1 -n lv04 -L 4G
sudo mkfs.ext4 /dev/mapper/vg1-lv01 >> 경로확인? = lvdisplay
sudo mkfs.ext3 /dev/vg1/lv02 경로 이렇게해도 된다
sudo mkfs.xfs /dev/vg1/lv03
sudo mkfs.xfs /dev/vg1/lv04
***************************************************************
*볼륨 확장
sudo pvcreate /dev/vdc1
sudo vgextend vg_test /dev/vdc1^C
sudo lvextend -L 7G 아니면 sudo lvextend -L +5G == 플러스 붙으면 그 용량에 더해주는거고 7G하면 딱 이거만큼으로되게 만들어주는 것
sudo lvextend -L 7G /dev/vg_test/lv01
sudo lvextend -L +2G /dev/vg_test/lv02 -r == r옵션 붙이면 파일시스템까지 같이 확장된다 .
*볼륨 reduce
sudo lvreduce -L 4G /dev/vg_test/lv01
*****************************실습***********************
1. VM 디스크 1을 제외한 모든 디스크를 제거 하시오
2. VM 디스크 2 (10G) 를 생성하시오.
3. 다음 사양을 적용 할수 있도록 적당히 파티셔닝 하고 마운트 하시오
- swap 메모리를 500M 확장 하시오(파티셔닝 방법)
- ext4 2G /tmp/test1 에 마운트 되는 파일시스템 생성(논리볼륨 아님)
- xfs 1G /tmp/test1 에 마운트 되는 파일시스템 생성(논리볼륨아님)
- 다음과 같은 논리 볼륨을 생성하시오
- 3G, 2G pv -> vgname 인 논리 볼륨그룹 생성
- /vgname/lvname1 1G (ext4 /mnt/lv1 )
- /vgname/lvname2 2G (xfs /mnt/lv2 )
-lvname1 을 1.5G로 확장하시오.
모든 내용은 재부팅 후에도 설정이 유지 되어야 한다.
********************************************************************
내가 수행한 명령어
1번 주파티션: swap용 type:82=(linux swap)
2번 주파티션: 파일시스템 생성용
3번 주파티션: 파일시스템 생성용
4번 확장파티션 : 확장해서 사용하기 위해 남은 용량 전부 할당한 파티션
5번 파티션 : 확장파티션의 첫번째 파티션 3G 할당 type: 8e =(LVM)
6번 파티션 : 확장파티션의 두번째 파티션 2G 할당 type:8e=(LVM)
sudo fdisk /dev/vdb
sudo mkswap /dev/vdb1
swapon /dev/vdb1
free
sudo fdisk /dev/vdb
sudo mkfs.ext4 /dev/vdb2
sudo mkfs.xfs /dev/vdb3
sudo mkdir /tmp/test1
sudo mkdir /tmp/test2
sudo mount /dev/vdb2 /tmp/test1
sudo mount /dev/vdb3 /tmp/test2
fdisk /dev/vdb
sudo pvcreate /dev/vdb5
sudo pvcreate /dev/vdb6
sudo vgcreate vgname /dev/vdb5 /dev/vdb6
sudo vgdisplay
sudo lvcreate vgname -n lvname1 -L 1G
sudo lvcreate vgname -n lvname2 -L 2G
sudo mkfs.ext4 /dev/vgname/lvname1
sudo mkfs.xfs /dev/vgname/lvname2
sudo mkdir /mnt/lv1
sudo mkdir /mnt/lv2
sudo mount /dev/vgname/lvname1 /mnt/lv1
sudo mount /dev/vgname/lvname2 /mnt/lv2
sudo lvextend -L 1.5G /dev/vgname/lvname1 -r
sudo vi /etc/fstab
file: /etc/fstab 내부내용 수정
/dev/vdb1 swap swap defaults 0 0
/dev/vdb2 /tmp/test1 ext4 defaults 0 0
/dev/vdb3 /tmp/test2 xfs defaults 0 0
/dev/vgname/lvname1 /mnt/lv1 ext4 defaults 0 0
/dev/vgname/lvname2 /mnt/lv2 xfs defaults 0 0
4일차에 실습 해설 계속
'Sub3_리눅스 관리' 카테고리의 다른 글
리눅스 관리 6일차 find OpenSSH NTP Firewall 방화벽(firewall-config, firewall-cmd) (0) | 2021.05.18 |
---|---|
리눅스 관리 5일차 로그관리 journalctl 로그규칙 yum (0) | 2021.05.14 |
리눅스 관리 4일차 systemd systemctl 부트프로세스 네트워크관리(nmcli) (0) | 2021.05.13 |
리눅스 관리 2일차 ACL, setfacl, getfacl, at, crontab, partitioning, mount (0) | 2021.05.11 |
리눅스 관리 1일차 사용자, 그룹 , 특수 권한 (0) | 2021.05.11 |