LVM, sudo, raid+lvm+sudo 응용문제

sso·2025년 4월 1일
0

리눅스 서버

목록 보기
17/40

p563

1. LVM(Logical Volume Manager)

여러개의 하드디스크를 하나의 하드디스크로 합칠 수 있고
2개의 하드디스크를 3개의 하드디스크처럼 사용할 수 있도록
유연하게 디스크 용량을 관리할 수 있는 도구

LV(Logical Volume) > LE(Logical Extent), VG(Volume Group) > PV(Physical Volume) > PE(Physical Extent)

PE(4MB) = LE(4MB)

p574

1-1. LVM 생성 실습

1. 물리 디스크 추가

2. fdisk를 통해 파티션 생성

  • 이때 LVM의 타입 코드는 8e 라는것을 알 수 있음

3. pv 생성

pvcreate /dev/sdb1 /sdev/sdc1

4. vg 생성

vgcreate 4glvg /dev/sdb1 /dev/sdc1

5. lv 생성

lvcreate -L 50G -n 4gllv1 4glvg

만들고 확인
lv 장치의 경로 /dev/4glvg/4gllv1

ll /dev/4glvg/4gllv1
심볼릭 링크라는걸 알 수 있음(민트색 표시)

진짜 파일은 /dev/dm-0이 진짜 원본 파일임
b로 시작하는것은 block

6. 일반 파티션처럼 포맷, 마운트하여 사용

lv까지 생성 후 lv를 일반 파티션처럼 포맷, 마운트하여 사용

mkdir /lv1
mkfs.xfs /dev/4glvg/4gllv1
mount /dev/4glvg/4gllv1 /lv1

vi /etc/fstab

  • /dev/4glvg/4gllv1 /lv1 xfs defaults 0 0

reboot

1-2. 남은 공간 사용 실습

1. 남은 공간 확인

vgdisplay

free pe /size가 23038 즉 89G 정도 된다는걸 알 수 있음

2. PE 갯수로 지정하여 lv 생성 (옵션 -l 사용)

lvcreate -l 10000 -n 4gllv2 4glvg

50G 정도 남은것으로 알 수 있음
즉 -l 10000 으로 PE 10000은 대략 40G 정도 된다는것을 알 수 있음(PE는 1개에 4MB)

그렇다면 용량을 설정하지 않고 남은 용량을 모두 사용하는 명령어
lvcreate --extents 100%FREE -n 4gllv3 4glvg
➡ 4gllv3는 내가 만들 lv 이름이며 4glvg(원본)에서 나누겠다는 뜻

lvcreate --extents 10%VG -n 4gllc4 4glvg
➡ FREE대신 VG를 쓰면 VG 전체 용량의 10%만 사용하겠다는 의미로 사용할 수 있음

남은 용량이 없음. 즉 남은 용량 모두 사용하는것에 성공함.

1-3. LVM 삭제 방법

LVM을 삭제하기 위해서는 생성 방법의 역순으로 삭제해나가야함

1. mount 삭제

umount /dev/4glvg/4gllv2

2. lv 삭제

lvremove /dev/4glvg/4gllv2

lvdisplay를 통해 4gllv1, 4gllv3만 남은것으로 보아 4gllv2가 삭제된것을 알 수 있음

1-4. 사용 중 디스크 확장 방법

1. 물리 디스크 생성

2. 새로 생성한 디스크의 파티션 생성

fdisk /dev/sdd
n
t - 8e
w

3. pv 생성

pvcreate /dev/sdd1

4. vg 확장

vgextend 4glvg /dev/sdd1

확장 적용되었는지 확인

vgdisplay -v

5. lv에 접근하기 위해 lv가 마운트 되어있다면 마운트 해제

lsblk (마운트 확인)
umount /dev/4glvg/4gllv1

6. lv 크기 확장

lvextend --size +50G /dev/4glvg/4gllv1
용량을 추가하는 것이기에 +를 꼭 붙여야함

vgdisplay를 사용해 용량 늘어난것을 확인

7. 파일 시스템 크기 늘리기

fsadm - file system admin

xfs 포맷이 된 lv일 경우 : fsadm resize /dev/4glvg/4gllv1
ext4 포맷이 된 lv일 경우 : resize2fs /dev/4glvg/4gllv1

내가 실습에서 xfs로 포맷을 했기에 fsadm 명령어를 사용하여 크기를 늘림

8. 마운트

mount /dev/4glvg/4gllv1 /lv1

df -hT를 사용해 파일 형식과 실제 사용량 등을 상세히 확인

/etc/fstab은 이미 수정된 /lv1으로 자동마운트 설정이 되어있기에 꼭 바로 마운트하지 않고 reboot 하여도 됨

p784

2. sudo 관련 명령어

sudo - 일반 사용자가 root의 권한을 사용할 수 있는 명령어

2-1. sudo 사용 실습

su - rocky
(다른 사용자 계정으로 접근할 수 있는 명령어)
dnf -y install mdadm

  • 일반 사용자는 권한 없이 함부로 프로그램을 설치할 수 없음
    일반 사용자로 프로그램을 다운로드 할 때는 root 권한을 사용할 수 있는 sudo를 사용해야함

sudo dnf -y install mdadm

  • rocky 계정의 암호를 입력하여 사용자 인증을 한 후에 다운로드가 가능함

2-2. visudo 명령어

  • root만 사용 가능한 명령어임
  • visudo는 /etc/sudoers 파일을 편집함
  • vi /etc/sudoers로는 보안상 편집할 수 없고 해당 파일을 수정하기 위해서는
    visudo를 사용해서 편집해야함

1. visudo 사용 실습

  1. 새로운 유저 생성

    useradd user1

  2. visudo 편집

    user1 ALL=(ALL) NOPASSWD: ALL

sudo 명령어를 쓰면 비밀번호를 항상 입력해야 하는 번거로움이 있어서
비밀번호를 입력하지 않고 sudo를 실행할 수 있게 하는 설정임

3. RAID, LVM, sudo 사용 실습 문제

Server B를 초기화 한 후 작업하시오.

0. 모든 작업은 반드시 root 계정으로 직접 작업하지 않고 sudo 권한을 부여한 일반 계정으로 작업하시오.

useradd user1
passwd user1
1234

visudo

  • user1 ALL=(ALL) ALL NOPASSWD: ALL

su - user1

1. 민감한 데이터 보관을 위해 마운트 포인트를 만들고자 한다. 적절한 디스크 갯수를 추가하여 RAID 1+6을 구성하고 /securedata 디렉터리에 자동 마운트까지 완료할 수 있도록 하시오.

RAID 1+6을 구성하는 최소 디스크 갯수는 8개임
트리구조로 생각했을 때 raid 6을 구성하기 위해서는 4개의 디스크가 필요하고
raid 6을 구성하기 위한 각각의 디스크는 raid 1 즉 최소 2개의 디스크가 필요함
때문에 최소 8개의 디스크가 필요함

sudo fdisk /dev/sdb ~ /dev/sdi
n
t - fd
fdisk -l | grep raid

server b에는 mdadm 커맨드가 없으므로 설치 필수

dnf -y install mdadm

sudo mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb1 /dev/sdc1
sudo mdadm -C /dev/md2 -l 1 -n 2 /dev/sdd1 /dev/sde1
sudo mdadm -C /dev/md3 -l 1 -n 2 /dev/sdf1 /dev/sdg1
sudo mdadm -C /dev/md4 -l 1 -n 2 /dev/sdh1 /dev/sdi1

sudo mdadm -C /dev/md5 -l 6 -n 4 /dev/md1 /dev/md2 /dev/md3 /dev/md4

sudo mkfs.xfs /dev/md5

mkdir /securedata
sudo vi /etc/fstab

  • /dev/md5 /securedata xfs defaults 0 0

reboot

2. 유연한 데이터 보관 장소를 만들기 위해 LVM을 사용하고자 한다. 2개의 디스크를 더 추가하고 2개의 pv를 한 개의 vg로 만드시오. 이후 다음 조건에 따라 lv를 생성하시오.

  1. 25G의 lv1
  2. 40G의 lv2
  1. 디스크 2개 생성 (두 디스크의 크기의 합이 65G 이상으로 생성)

  2. 파티션 생성

  • sudo fdisk /dev/sdk, /dev/sdj
    n
    t - 8e

이때 lvm 관련 커맨드가 없으므로 lvm2 패키지를 설치해야함

  • sudo dnf -y install lvm2
  1. pv 생성
  • sudo pvcreate /dev/sdk1
  • sudo pvcreate /dev/sdj1
  1. vg 생성
  • sudo vgcreate vg1 /dev/sdk1 /dev/sdj1
  1. lv 생성
  • sudo lvcreate -L 25G -n lv1 vg1
    (만약 전체 용량을 65G로 생성하였을 경우 --extents 100%FREE 사용 가능)
    sudo lvcreate --extents 100%FREE -n lv2 vg1

  1. 포맷
  • sudo mkfs.xfs /dev/vg1/lv1
    sudo mkfs.xfs /dev/vg1/lv2
  1. 마운트
  • sudo mkdir /LV1
    sudo mkdir /LV2
    sudo mount /dev/vg1/lv1 /LV1
    sudo mount /dev/vg1/lv2 /LV2
  1. fstab 편집
  • sudo vi /etc/fstab
    /dev/vg1/lv1 /LV1 xfs defaults 0 0
    /dev/vg1/lv2 /LV2 xfs defaults 0 0
  1. 재부팅
  • sudo reboot

2.1 추가적인 용량이 필요할 것으로 판단하여 현재의 vg에 50G pv 한 개를 추가하여 확장하시오.

  1. 물리 디스크 50G 추가
    번호가 뒤로 밀리는것을 알 수 있음

  2. 새로운 디스크 파티션 생성

  • sudo fdisk /dev/sdj
    n
    t - 8e
    w
  1. pv 생성
  • pvcreate /dev/sdj1
  1. vg 확장
  • vgextend vg1 /dev/sdj1
  1. 마운트 해제
  • umount /dev/vg1/lv1
    umount /dev/vg1/lv2
  1. lv 확장
  • lvextend --size +50G /dev/vg1/lv1
    lvextend -L +50G /dev/vg1/lv2
  1. 파일 시스템 크기 확장
  • fsadm resize /dev/vg1/lv1
    fsadm resize /dev/vg1/lv2
  1. 마운트
  • mount /dev/vg1/lv1 /LV1
    mount /dev/vg1/lv2 /LV2

3. 10G의 lv3 생성 후 용량이 더 필요하다는 시나리오를 통해 50G로 용량 증설
모든 lv는 각각 /lv1, /lv2, /lv3 디렉터리에 자동 마운트까지 완료하시오.

profile
오늘도 하나씩 해결해 나가자!

0개의 댓글