본문 바로가기

Linux/RHCE

[RHCE]LV 생성 및 적용

7. LV 생성 및 적용

문제 및 답
문제 7)
/home/matthew/ansible/lv.yml 파일을 만들고 모든 호스트에서 실행 되도록 합니다.
요구 사항은 다음과 같습니다.
1. research 볼륨 그룹에서 1500MiB의 논리 볼륨을 만듭니다.
2. 논리 볼륨 이름은 data입니다.
3. ext4를 사용하여 이 논리 볼륨을 포맷합니다.
4. 이 논리 볼륨의 크기를 생성 할 수없는 경우 오류 메시지가 출력됩니다. Could not create logical volume of that size
5. 대신 800MiB 크기를 사용하여 논리 볼륨이 생성됩니다.
6. research 볼륨 그룹이 존재하지 않는 경우 오류 메시지가 출력됩니다. 이 오류 메시지도 정확하게 써야 한다.
7. 논리 볼륨을 어떤 방식으로도 마운트하지 않습니다.
답 7)
1. 실행 전/후 확인하기
ansible all -m shell -a "vgs"
ansible all -m shell -a "lvs"
ansible all -m shell -a "df -hT"
ansible all -m shell -a "lsblk"

#vi /home/matthew/ansible/lv.yml
- hosts: all
  tasks:
    - name: register check_vg
      shell: vgdisplay research
      register: check_vg
      ignore_errors: yes
    - name: output the msg
      debug:
        msg: "research vg is not exist"
      when: check_vg is failed
      failed_when: check_vg is failed
    - name: create the logical volume
      block:
        - name: create lv 1500M
          lvol: 
            vg: research
            lv: data
            size: 1500M
      rescue:
        - name: output the msg
          debug:
            msg: "could not create lv that size"
        - name: create lv 800M
          lvol: 
            vg: research
            lv: data
            size: 800M
    - name: format ext4
      filesystem:
        dev: /dev/research/lvx
        fstype: ext4
   
      
3. 실행
ansible-playbook lv.yml

 

테스트용 문제 및 답
문제 7)
/home/ec2-user/ansible/lv.yml 파일을 만들고 node2 호스트에서 실행 되도록 합니다.
요구 사항은 다음과 같습니다.
1. research 볼륨 그룹에서 800MiB의 논리 볼륨을 만듭니다.
2. 논리 볼륨 이름은 lvx입니다.
3. ext4를 사용하여 이 논리 볼륨을 포맷합니다.
4. 이 논리 볼륨의 크기를 생성 할 수없는 경우 오류 메시지가 출력됩니다. Could not create logical volume of that size
5. 대신 600MiB 크기를 사용하여 논리 볼륨이 생성됩니다.
6. research 볼륨 그룹이 존재하지 않는 경우 오류 메시지가 출력됩니다. 이 오류 메시지도 정확하게 써야 한다.
7. 논리 볼륨을 어떤 방식으로도 마운트하지 않습니다.
답 7)
1. 실행 전/후 확인하기
ansible all -m shell -a "vgs"
ansible all -m shell -a "lvs"
ansible all -m shell -a "df -Th"
ansible all -m shell -a "lsblk"

#vi /home/ec2-user/ansible/lv.yml
//ansible 2.14버전에서 lvol사용 위해 community.general 추가해야함(실제 시험에서 필요 없음)
- hosts: node2
  collections:
    - community.general
  tasks:
    - name: register check_vg
      shell: vgdisplay research
      register: check_vg
      ignore_errors: yes
    - name: output the msg
      debug:
        msg: "research vg is not exist"
      when: check_vg is failed
      failed_when: check_vg is failed
    - name: create the logical volume
      block:
        - name: create lvx 800M
          lvol: 
            vg: research
            lv: lvx
            size: 800M
      rescue:
        - name: output the msg
          debug:
            msg: "could not create lv that size"
        - name: create lv 600M
          lvol: 
            vg: research
            lv: lvx
            size: 600M
    - name: format ext4
      filesystem:
        dev: /dev/research/lvx
        fstype: ext4

      
 3. 실행
ansible-playbook lv.yml

 

풀이과정

테스트 환경 세팅

1. AWS node2 인스턴스에 볼륨 추가 및 인스턴스 연결

- 볼륨 추가

 

- 볼륨 연결

 

 

2. 볼륨 추가 확인

- 추가 전

 

- 추가 후

 

3. lvm 패키지 설치 및 research vg생성(root에서 실행)

dnf install -y lvm2
vgcreate research /dev/xvdb

 

 

문제 풀이

1. 실행 전 확인 

ansible all -m shell -a "vgs"
ansible all -m shell -a "lvs"
ansible all -m shell -a "df -Th"
ansible all -m shell -a "lsblk"

vgs 통해 research 그룹 존재 확인, playbook 실행시 msg 뜨는 유무 추측하기

research vg 없을 경우 "research vg is not exist" 뜸
    - name: register check_vg
      shell: vgdisplay research
      register: check_vg
      ignore_errors: yes
    - name: output the msg
      debug:
        msg: "research vg is not exist"
      when: check_vg is failed
      failed_when: check_vg is failed

 

2. 실행 후 확인

- 정상적으로 실행됨

 

- vgs : 이전 결과와 비교하여 VFree 사이즈 확인

- lsblk : VG이름-LV이름 정상적으로 만들어졌는지, SIZE가 맞는지 확인

- lvs : LV이름, VG이름, LSize 확인

 

- node2번에서 ext4로 포맷되었는지 확인

lsblk -f /dev/research/lvx