일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 전체 백업
- backend storage
- 앤서블
- 백업
- devops
- Role
- IAC
- 구성관리
- kv
- SHR
- 리눅스
- 파일시스템
- SSH OTP
- Vault
- vault agent
- 통합 풀 백업
- VIRT
- auth methods
- key/value
- REST API
- 인프라
- 시스템
- 차분 백업
- Secret Engine
- 유닉스
- hashicorp
- 커널 파라미터
- DATA 백업
- secret engines
- 자동화
- Today
- Total
클라우드 아카이브
테라폼을 사용하여 RHEL 7에 LVM 및 파일시스템 구성 - 수동 version (1) 본문
테라폼을 사용하여 RHEL 7에 LVM 및 파일시스템 구성 - 수동 version (1)
Cloud Engineer 2021. 10. 18. 16:09개요
시스템 엔지니어로 직무를 수행하다보면 신규 서버를 구축할 때 오라클 DBA에게 LVM 및 파일시스템을 구성한 이후 이관을 해야되는 상황이 발생할 수 있습니다. 본 시리즈의 (1) 포스팅에서는 이러한 상황에서 관계형 DBMS인 오라클을 설치 및 운영하기 위해 필요한 LVM을 구성하는 실습을 진행하겠습니다. 다음 (2) 포스팅에서는 구성된 LVM에 파일시스템 및 마운팅을 진행하여 DBA가 사용할 수 있도록 하겠습니다.
테라폼 코드는 아래 링크를 클릭하시면 됩니다.
github 주소
사전학습
요구사항
- 모든 파티션은 Primary Partition으로 구성하며, 파티션 테이블은 GPT로 설정
- 파일시스템은 EXT4로 설정 (다른 EXT 2/3/4 파일시스템과의 하위 호환성을 보장하기 위함)
- 오라클 DBA에게 아래와 같이 파일시스템 구성해달라는 요청을 받음
사용자 | 그룹 | 디렉토리 구성 | 용량 | |
ora_user | dba | 베이스 영역 | /oracle | 50G |
데이터 영역 | /oradata | 150G |
문제 해결 프로세스
해당 업무를 부여받을 경우 아래와 같은 프로세스로 업무를 완수합니다. 유저 및 그룹을 생성하고 해당 사용자가 DBMS를 구성할 수 있도록 LVM을 구성해줍니다.
1. RHEL 7 접속 및 root 로그인
AWS에 생성된 EC2 정보에 명시된 공인 IP로 SSH 접속을 진행하겠습니다. 리눅스에 SSH를 이용하여 접속하는 방법은 2가지가 있습니다. 사용자 계정과 패스워드를 이용하여 접속하는 방식과 공개키 및 개인키를 이용하여 비대칭 암호화 방식 기반으로 인증하여 접속하는 방식입니다. 우리는 로컬에서 공개키/개인키를 자체적으로 서명 및 생성했기 때문에 공개키/개인키를 사용하여 접속하겠습니다. 초기에 RHEL 7을 생성할 때 root 패스워드 설정이 안되어있는 상태이기 때문에 sudo 명령어를 사용하여 root 패스워드를 원하는 패스워드로 변경해줍니다.
# 1. ssh 접속
$ ssh -i ~/.ssh/ec2-admin ec2-user@{본인 EC2 노드의 공인 IP}
# 2. root 패스워드 변경
$ sudo passwd root
root 사용자의 비밀 번호 변경 중
새 암호:
새 암호 재입력:
# 3. root로 접속
$ su -
암호:
# 4. root로 접속 완료
{root@1.2.3.4}$
2. 유저 및 그룹 생성
ora_user 및 dba 그룹을 생성하기 위해 아래와 같은 명령어를 입력합니다.
# 1. ora_user 사용자 생성 및 패스워드 설정
$ useradd ora_user
$ echo "ora_user:admin" | chpasswd
# 2. dba 그룹 생성
$ groupadd dba
# 3. ora_user의 기본 그룹을 dba로 변경
$ usermod -g dba ora_user
# 4. ora_user의 그룹이 정상적으로 dba로 변경되었는지 확인
$ id ora_user
uid=1001(ora_user) gid=1002(dba) groups=1002(dba)
또는
$ cat /etc/passwd | grep ora_user
ora_user:x:1001:1002::/home/ora_user:/bin/bash
# 5. oradata 및 oracle 디렉토리를 생성
$ mkdir oradata
$ mkdir oracle
$ ls -alrt
total 12
-rw-r--r--. 1 ora_user dba 231 Mar 12 2019 .bashrc
-rw-r--r--. 1 ora_user dba 193 Mar 12 2019 .bash_profile
-rw-r--r--. 1 ora_user dba 18 Mar 12 2019 .bash_logout
drwxr-xr-x. 4 root root 38 Oct 15 07:59 ..
drwx------. 2 ora_user dba 62 Oct 15 07:59 .
# 6. ora_user 사용자의 홈 디렉토리의 그룹 소유권을 dba로 변경
$ chgrp dba /home/ora_user/*
$ ls -alrt
total 12
-rw-r--r--. 1 ora_user dba 231 Mar 12 2019 .bashrc
-rw-r--r--. 1 ora_user dba 193 Mar 12 2019 .bash_profile
-rw-r--r--. 1 ora_user dba 18 Mar 12 2019 .bash_logout
drwxr-xr-x. 4 root root 38 Oct 15 07:59 ..
drwxr-xr-x. 2 ora_user dba 6 Oct 15 08:06 oracle
drwxr-xr-x. 2 ora_user dba 6 Oct 15 08:06 oradata
drwx------. 4 ora_user dba 91 Oct 15 08:06 .
3. LVM 구성
RHEL 7에 LVM 패키지를 설치하고 본 패키지를 사용하여 pv, lv, vg를 구성하겠습니다.
# 1. lvm 패키지 설치
$ yum update -y
$ yum install -y lvm
# 2. lvm 데몬 시작
$ systemctl start lvm2-monitor.service
$ systemctl enable lvm2-monitor.service
# 3. PV 구성
# 1) 물리적 볼륨 생성
$ pvcreate /dev/xvdb
WARNING: ext4 signature detected on /dev/xvdb at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/xvdb.
Physical volume "/dev/xvdb" successfully created.
# 2) 정상적으로 pv 생성이 되었는지 확인
$ pvdisplay /dev/xvdb
"/dev/xvdb" is a new physical volume of "200.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdb
VG Name
PV Size 200.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ucFVhk-I9OG-dOLN-ZP3P-ML1F-Pjco-5azrSn
# 4. VG 구성
# 1) 물리적인 볼륨을 하나의 그룹으로 생성
$ vgcreate vg_oracle /dev/xvdb
Volume group "vg_oracle" successfully created
# 2) vg가 정상적으로 생성되었는지 확인
$ vgdisplay vg_oracle
--- Volume group ---
VG Name vg_oracle
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <200.00 GiB
PE Size 4.00 MiB
Total PE 51199
Alloc PE / Size 0 / 0
Free PE / Size 51199 / <200.00 GiB
VG UUID xRiUzh-d0Xq-owQZ-qzf6-BtrJ-P32d-7L2cAn
# 5. LV 생성
# 1) lv_ora_data 생성
$ lvcreate -L 150G -n lv_ora_data vg_oracle
# 2) lv_oracle 생성
$ lvcreate -l 100%FREE -n lv_oracle vg_oracle
# 3) 정상적으로 생성됬는지 확인
$ --- Logical volume ---
LV Path /dev/vg_oracle/lv_ora_data
LV Name lv_ora_data
VG Name vg_oracle
LV UUID jtSjlM-29sE-apx6-0OZy-yo2D-5W8q-NBht0E
LV Write Access read/write
LV Creation host, time ip-172-31-13-2.ap-northeast-2.compute.internal, 2021-10-15 09:04:09 +0000
LV Status available
# open 0
LV Size 150.00 GiB
Current LE 38400
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
--- Logical volume ---
LV Path /dev/vg_oracle/lv_oracle
LV Name lv_oracle
VG Name vg_oracle
LV UUID ptq4tM-I5S4-BQyD-E3i2-HQf4-lAMr-aPbdiD
LV Write Access read/write
LV Creation host, time ip-172-31-13-2.ap-northeast-2.compute.internal, 2021-10-15 09:10:26 +0000
LV Status available
# open 0
LV Size <50.00 GiB
Current LE 12799
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
마무리
Terraform을 사용하여 EC2를 생성하고 해당 노드에서 사용자/그룹 생성 및 LVM을 구성하는 실습을 진행했습니다. 다음 (2) 포스팅에서는 구성된 LVM 시스템에서 파일시스템을 입히고 마운팅까지 진행하여 실습을 마무리하도록 하겠습니다.
[출처]
- https://wisdom16.tistory.com/10
- https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ebs-using-volumes.html
-
'워크플레이스 > IaC를 이용한 LVM 구성' 카테고리의 다른 글
[LVM] RHEL 7에 LVM 및 파일시스템 구성 - 수동 version (2) (0) | 2021.10.19 |
---|---|
01. Terraform으로 AWS에 RHEL 7 생성 (0) | 2021.10.13 |
[IaC][LVM] IaC를 이용한 LVM 구성 작업 설명 (0) | 2021.10.13 |