리눅스 Raw device 관련 질문 드립니다.

구십평   
   조회 4275   추천 0    

 안녕하세요. 리눅스 Raw device 생성 중 궁금한 점이 생겨서 질문 드립니다. (버전 : RHEL 7.X)

스토리지에서 DB서버 두대에 공유볼륨으로 할당 받아 Raw device를 생성하고 있습니다.

udev 밑에 rule파일에 작성해서 vg이름, lv이름, 소유권, raw device 번호 등 작성 및 적용해서 Raw device를 생성하잖아요?

공유 볼륨이어서 1호기에서 생성하면 raw device가 2호기에도 같이 생길거라고 생각했는데, 1호기에서만 raw device가 생성되더라구요.

그래서 작성한 rule 파일을 2호기에 그대로 전달해서 적용해서 생성했습니다.

결론적으로 궁금한 점은, 공유볼륨이어도 1호기에서만 rule 작성 및 적용하면 1호기에만 raw device가 생성되고 2호기에는 생성되지 않는게 정상이고, 1호기 2호기 (또는 더 많은 서버) 모두 각 서버마다 개별로 rule 파일 작성 및 적용해서 각 서버마다 개별적으로 raw device를 생성해줘야 하는게 맞는 방법인가요?

답변 부탁 드립니다.


짧은글 일수록 신중하게.
박문형 2021-10
DB서버를 2대 사용해야 하는 이유가 무엇인가요??
     
구십평 2021-10
tibero 또는 oracle 클러스터 구성 입니다.
FOXBI 2021-10
양 서버간 어떤 방법으로 할당이 되어있으신지는 모르겠으나

Oracle에서 RAC asm 구성인가? 했다가 tibero HA 구성인가하면서 적어봅니다..

일단 두노드가 다 보이는 share 형태로 할당되었다는 가정하에

말슴하신 부분중 lvm 구성 언급이 있어 그에 맞게만 말씀드립니다.

제가 파악한 환경이 아니라면 내용이 맞지 않을 수 있습니다.


이중화구성을 위해 share형태로 raw device 할당을 받은 리눅스 환경에서 LVM구성은

보통 LVM구성시나 추구 증설등 LVM의 구성변경이 일어날 때

보통은 한쪽 노드에서 작업을 진행하고 다른노드에 반영해주는 방식을 사용합니다.


1. 초기 구성일경우

두노드가 LVM구성이 아직 안됬다는 가정하에

첫번째 노드에서 raw device 로 pvcreate -> vgcreate -> lvcreate -> filesystem 구성 을했다면

저의 경우는 보통 pvcreate 해주고난 다음 두번째 노드에서 pvscan 을 합니다.

이후 vg와 lv생성간에 vgs, lvs 등으로 바로 반영되는지 여부를 살핍니다.

안될경우 vgscan이나 lvscan 등을 추가로 해줄수있습니다.

신규생성은 보통 이렇게 해도 양쪽 다 반영이 되더라고요..


2. 기존 생성 내역에 증설등으로 변화가 생길경우

추가 raw device 들이 할당되어 확장등을 이용해서 증설하거나 해서 vg에 변화가 생기는

경우는 단순히 pvscan,vgscan,lvscan 만 가지고 되는게 아니고

증설을 예로들면 한쪽노드에서

pvcreate -> vgextend -> lvextend -> resize2fs 한 후에

두번째 노드에서 증설된 vg에 대하여

vgchange -an VG명

vgchange -ay VG명

해주면 됩니다.

dmsetup 에서 table 정보를 보면 거기에 여러정보가 있는데

이런 상황에서 vg에 관련된 확장내역이 다른노드에 전달이 안되기때문에

vg를 비활성화 후 다시 활성화하여 동기화를 해주는 과정입니다.



이 두가지 케이스 모두 Share Volume 형태이되 Active - Standby 구조의 HA 구성일경우 해당하는 내용이며

asm이나 여타 다른 형태인경우는 적용사항이 아닐 수 있습니다.

참고하시기 바랍니다~
     
구십평 2021-10
답변 감사합니다! 제가 DB 엔지니어는 아니여서 ASM 방식인지는 모르겠으나, 답변해주신 대로 PV, VG, LV 생성 과정까지 진행하고 그 이후 /etc/udev/rules.d/밑에 rule 파일을 생성 및 적용하여 생성되는 raw device (/dev/raw/raw1...) 에 대해서 질문 드렸습니다! 말씀해주신대로 PV, VG, LV는 한쪽에서만 생성해도 공유볼륨일 경우 다른 노드에서도 같이 생성이 되더라구요. 근데 raw device는 같이 생성이 안되기에 개별 생성을 하긴 했는데, 이게 맞는지 아니면 잘못된건지 (공유볼륨이니 PV, VG, LV 처럼 raw 디바이스도 한쪽에서만 생성하면 다른노드에서도 생성이 같이 되는게 정상인건지) 궁금해서요!
          
FOXBI 2021-10
인식하는 과정을 궁금해하신건데 제가 너무 뒷부분을 말씀드린거 같네요..

외장 디스크가 혹시 어떤 방식으로 양쪽노드에 들어가나요?

SAN환경이나 iscsi같은거면 device-mapper 패키지 설치하셔서 multipath 로 관리하시면  raw device 관련리가 편하실거 같은데요..

저는 rules.d 쪽으로는 네트워크 외에는 안건들여봐서 잘은 모르겠지만

이제 재부팅을해도 인식해서 올라오지 않고 수동으로 추가해줘야 하는거면  좀 얘기가 다르긴하네요..

암튼 인식과 관련해서는 lvm구성과 달리 물리적 인식이기때문에 한쪽했다고 다른쪽이 인식하지는 않습니다.

multipath 환경에서도 인식을 위해서는 echo 를 날려주는 등에 액션은 하거든요~
지존 2021-10
오라클 RAC는 디바이스 억세스 및 락 관리를 DB가 알아서 해줍니다. 물론 공유 디스크라면 2개의 서버에서 보여야 합니다. 공유 디스크라도 바라보는 서버 관점에서 디바이스명이 다를 수 있습니다.


QnA
제목Page 1799/5708
2015-12   1674490   백메가
2014-05   5139886   정은준1
2016-07   4140   나너우리
2015-12   4141   바부팅이
2020-08   4141   테츠
2016-04   4141   유포리아
2018-06   4141   안개속영원
2015-12   4141   임종열
2016-12   4141   쿰척쿰척
2014-04   4141   배상0원
2016-04   4141   비와서코털…
2017-06   4141   오티스
2023-02   4141   전설속의미…
2017-01   4141   여주농민76
2016-10   4141   그파
2015-05   4141   짬탱이
2017-05   4141   차넷컴퓨터
2014-11   4141   가빠로구나
2014-01   4141   이태욱
2021-03   4141  
2020-04   4141   진신두
2016-11   4141   제타