3/4일 수업에 이어서 Linux hardware 관련 수업이었다.
수업 내용
물리적 장치인 디스크의 공간을 메모리처럼 사용하는 방식
당장 필요하지 않은 메모리 데이터를 보조기억장치로 이동시켰다가(Swap Out) 다시 필요할 때 불러오는(Swap In) 동작
마치 실제 물리 메모리가 증가된 것 같은 효과를 가져옴
스왑이 빈번하게 일어날 경우 시스템의 성능이 굉장히 저하됨
시스템 상태 조회 명령
top : 윈도우의 작업관리자와 유사하게 시스템 상태 및 프로세스 별 정보를 실시간으로 갱신하며 출력
free : 현재 메모리 상태를 출력
swapon -d : 현재 시스템의 스왑 등록 상태
스왑 파티션 : 파티션 전체를 스왑 용도로 사용, 파티션으로 할당할 수 있는 공간이 필요
스왑 파일 : 파일을 생성해서 그 파일을 스왑 용도로 사용, 파일시스템의 가용공간을 사용하여 스왑 사용 가능하다는 장점
디스크 인식 - 파티션 생성 - 스왑파티션 생성 - 스왑 등록
명령어 : mkswap <파티션장치명>
swapon <스왑파티션명>
swapoff <스왑파티션명>
스왑파일은 루트(/) 파일시스템이 아는 다른 저장소를 사용할 것(성능 등)
스왑 파일이 저장될 파티션 및 파일시스템 생성
파티션 생성 → 파일시스템 생성 → 마운트 → 파일생성 → 스왑파일로 변경 → 스왑 등록
dd if=/dev/zero of=/swapdir/swapfile bs=512 count=100000
약 50MB 정도의 빈 파일이 생성됨
chmod 600 /swapdir/swapfile
스왑파일로 변경
mkswap /swapdir/swapfile
스왑 등록
swapon /swapdir/swapfile
스왑 해제
swapoff /swapdir/swapfile
스왑 자동 등록
/etc/fstab 파일을 사용하여 등록
등록된 스왑 동작 테스트 : swapon -a
mount -a : 일반적인 마운트 항목만 적용
저장소를 유연하게 관리하기 위한 방식
개별 디스크의 파티션 레이아웃 등을 직접관리하지 않고 LVM을 통해 관리
확장 등이 용이함
RAID 등의 추가기능을 제공함
PV(Physical Volume) : LVM을 구성하기 위한 가장 낮은 수준의 구성요소. 물리 장치. 디스크 자체, 디스크 내 파티션 (/dev/sdb → /dev/sdb1)
VG(Volume Group) : PV의 모음, 이름을 지정하여 생성, 이름으로 접근
LV(Logical Volume) : VG에서 생성, LVM의 최종 결과물, 내부에 파일시스템 생성하여 사용
디스크 추가
디스크 인식
파티션 생성
물리볼륨 생성
볼륨그룹 생성
논리볼륨 생성 → 볼륨(파티션) 생성
파일시스템 생성
마운트
5개의 10GB SCSI 디스크 VM에 추가
디스크 인식
각 디스크를 fdisk 사용하여 MBR 파티션 - 전체를 하나의 파티션
디스크 인식
# echo '- - -' > /sys/class/scsi_host/host0/scan
각 디스크 별 파티션 초기화
# parted -s /dev/sdb mklabel msdos
# parted -s /dev/sdc mklabel msdos
# parted -s /dev/sdd mklabel msdos
# parted -s /dev/sde mklabel msdos
# parted -s /dev/sdf mklabel msdos
각 디스크 별 전체 용량 사용하는 파티션 생성 (Shell의 for문 사용)
# for i in {b..f}; do parted -s /dev/sd$i mkpart primary 0% 100%; done
생성된 파티션 확인
# lsblk
PV 생성
# pvcreate <장치명> [장치명]...
VG 생성
# vgcreate <볼륨그룹이름> <PV장치이름> [PV장치이름]...
LV 생성
# lvcreate -n <LV 이름> -L <용량> <볼륨그룹이름>
LV는 파티션과 같은 장치이므로 내부에 파일시스템 생성
# mkfs -t xfs /dev/<볼륨그룹이름>/<논리볼륨이름>
논리볼륨 제거
생성의 역순으로 진행
LV를 사용중이지 않아야 제거 가능
LV가 없어야 VG를 제거할 수 있음
VG에 포함되어 있지 않은 PV는 PV를 제거할 수 있음
LV 마운트 해제
# umount <연결한 디렉터리>
LV 제거
# lvremove <삭제할 장치파일명>
VG 제거
# vgremove <삭제할 볼륨그룹명>
PV 제거
# pvremove <삭제할 물리볼륨장치명>
PE (Physical Extent)
물리볼륨을 구성할 경우, 물리볼륨 내부의 할당 단위
LE (Logical Extent)
논리볼륨에서 사용하는 할당단위
= PE와 같은 크기 사용
논리볼륨 구성상태 확인
물리볼륨 상태확인
# pvdisplay
# pvdisplay [장치명]
볼륨그룹 상태확인
# vgdisplay
# vgdisplay [볼륨그룹이름]
논리볼륨 상태확인
# lvdisplay
# lvdisplay [논리볼륨 장치명]
요약정보표시
물리볼륨 : pvs
볼륨그룹 : vgs
논리볼륨 : lvs