RAID에 대한 기본적 정의부터 구성까지(LSI MegaRAID SAS 9261-8i)

리눅스/OS 일반|2018. 2. 14. 00:57
반응형

1. 서버 RAID?

 

1. RAID의 정의

RAID : Redundant Array of Indexpensive Disk

 여러개의 디스크에 일부 중복된 데이터를 나누어 저장하는 기술과 디스크용량 증가를 위한 기술,

또한 읽기/쓰기 속도를 증가시키거나 데이터를 안전하게 백업하는 용도로 사용하기도 한다.

 

RAID에 사용되는 기술

 Striping (스트라이핑)

스트라이핑은 하나의 디스크에 모두 기록할 수 없는 데이터를 여러개의 디스크에 분배하여 기록할 수

있는 기술로 큰 용량을 만들어 사용하는데 사용된다.

 Mirroring (미러링)

미러링은 같은 데이터를 1개이상의 디스크에 저장하여 복사본을 만드는 기술이다한 디스크에 장애가

발생하여도살아있는 다른 디스크의 데이터는 영향을 받지 않으므로 데이터를 보호할 수 있다데이터의

변경을 계속 업데이트 하는 것으로 특정 시간에 데이터를 저장하는 백업과는 본질적으로 다르다.

 Parity(패리티)

패리티는 하나의 디스크에 장애가 발생하였을 경우 다른 디스크에 별도로 저장된 패리티정보를 통해

복구가 가능한 기술이다손상된 디스크의 패리티정보는 나머지 디스크에 있는 데이터를 토대로 다시

생성할 수 있다.

 

2. RAID의 종류

RAID 0

 2개 이상의 하드를 병렬로 연결해서 데이터블록 단위로 분산해서 읽고 쓰는 방식으로 구성된다.

RAID 1

 데이터의 안정성을 높이기 위해 동일한 데이터를 1개 이상의 디스크에 똑같이 저장하는 방식이다.

RAID 5

 하나의 디스크에 장애가 생기면 나머지 디스크의 패리티정보로 복원이 가능한 기술이다.

RAID 10

 RAID1로 구성된 하드들을 최종적으로 RAID0방식으로 스트라이핑하여 성능을 높이는 기술이다.

 

※ 이 밖에 다양한 RAID구성 방식이 있지만본 문서에서는 0, 1, 5, 10 방식에 대한 내용으로 구성하였다.

 

3. 하드웨어 및 구성

본격적인 RAID 구성에 앞서 물리적인 하드웨어 구성에 대해 알아보자

 

준비물 : 8베이 RAID 서버, RAID 케이블 * 2EA, RAID 컨트롤러(RAID 카드), 500GB HDD디스크 * 8EA

8베이 RAID 서버(여기서 RAID 서버란 RAID 케이블을 장착할 수 있는 디스크 베이 패널과 RAID 카드를 장착

할 PCI슬롯 이 있는 서버를 말한다.)

※ 실제로는 12베이지만 OS 외 디스크 장착을 8개만 할 것이므로 8베이로 정의한다.

 

RAID 케이블

 

RAID 컨트롤러(RAID 카드)

※ 본 문서에서는 LSI 9261-8i 버전의 컨트롤러를 사용함

 

500GB HDD디스크 * 8EA

 

[1] 준비된 디스크를 서버에 장착한다.

 

[2] 서버를 열어 PCI슬롯에 RAID 컨트롤러를 장착한다.

 

[3] 디스크 패널을 확인한다.

 

[4] 그림 처럼 디스크 패널과 컨트롤러에 RAID 케이블을 연결해준다.

※ 위 포트부터 순서(번호)가 지정되기 때문에 컨트롤러와 패널을 같은 상하위치에 연결해 주도록한다.

 

[5] 물리적 연결을 끝내고 서버를 부팅시켜디스크를 장착한 8개의 베이에 LED가 들어오는 것을 확인한다.

 

2. RAID 설정

1. BIOS에서 RAID 설정하기

서버를 부팅하고 먼저 RAID 설정페이지로 접근하여 레이드 종류를 선택하기 전까지의 과정을 알아보도록 하자

 

[1] 부팅 후 첫화면에서 RAID 컨트롤러와 디스크 인식결과가 출력된다.

그림에 나와있는 것처럼 0~7번 8개의 디스크 모두 정상적으로 인식이 되는 것을 확인할 수 있다.

Ctrl+H키를 눌러 설정페이지로 접근하도록 하자

 

[2] 펌웨어 버전을 확인할 수 있는 첫 화면이다. “Start박스를 클릭한다.

 

[3] 다음 화면에서 디스크 인식을 한번 더 확인할 수 있다. “Configuration Wizard를 클릭한다.

 

[4] RAID 설정을 지울 것인지새롭게 생성할 것인지아니면 내용을 추가 할지 선택하는 페이지다.

New Configuration을 선택하고 “Next버튼을 클릭한다.

 

[5] 새롭게 설정을 하게되면 기존 설정은 없어지면서 데이터 또한 잃게된다이것에 동의하는지 묻고 있다.

yes버튼을 클릭한다.

 

[6] 수동설정자동설정을 결정하는 페이지다.

Manual Configuration을 선택하고 “Next를 클릭하여 수동설정을 진행하도록 한다.

※ 이 부분까지는 모든 레이드설정에 앞서 동일하게 적용된다.

 

2. RAID 0 구성하기

[1] 지금부터는 RAID별로 드라이브 그룹을 나누어 진행한다먼저 RAID 0을 구성해보도록 하다.

Drives부분에 있는 디스크를 모두 선택하여 “Add To Array버튼을 클릭한다.

 

[2] Drive Groups에 디스크가 추가된 것을 확인할 수 있다여기서 “Accept DG버튼을 클릭하면,

용량이 표시되는 것이 보인다. “Next버튼을 클릭하여 다음화면으로 이동하자

 

[3] 다음화면에서 어떤 방식의 레이드를 구성할 수 있는지 나온다. “Add to SPAN버튼을 클릭하면,

Span부분에 드라이브 그룹이 추가된 것을 확인할 수 있다Next버튼을 클릭하여 다음화면으로

이동한다.

※ 전 단계에서 그룹을 한번에 묶었기 때문에 RAID 0, RAID 1, RAID 5, RAID 6까지 설정이 가능하다.

레이드를 두번에 걸쳐 묶는 RAID 10 과는 본 설정에서 차이가 있다.

 

[4] 다음화면에서 RAID Level 부분을 RAID 0으로 선택하고Select Size부분에 레이드 종류에 맞는 크기를

입력한다그 후 “Accept버튼을 눌러 적용해주면 버추얼 드라이브가 생성된 것을 확인할 수 있다.

 

[5] 다음 화면에서 설정을 저장하고캐싱활성화 부분은 취소버튼을 클릭해준다.

 

[6] 기존 VD의 데이터가 모두 지워진다는 문구가 나온다. “Yes버튼을 클릭해준다.

 

[7] 다음은 초기화 페이지가 나온다. “Fast Initialize를 클릭하고 “Go버튼을 눌러 초기화를 진행한다.

완료가 되면, “Home을 클릭하여 처음페이지로 돌아간다.

 

[8] 초기화면으로 돌아오면RAID 0으로 설정이 된 것을 확인할 수 있다. “Exit를 클릭하여 리부팅한다.

 

[9] OS를 올려보면 레이드 디스크가 4TB로 확인된다.

※ 4TB로 확인이 되는 이유는 RAID 0은 최초에 설명했듯이 Stripe기술이기 때문이다즉 8개의 하드디스크를

병렬 연결하여 데이터블록 단위로 분산해서 읽고 쓰는 방식으로500GB * 8EA = 4TB라는 계산이 나온다.

 

※ RAID 0의 장점으로 빠른 I/O 성능을 꼽을 수 있다. N개의 디스크 용량을 온전하게 모두 사용할 수 있다는

장점도 가지고 있다그러나 단점은 치명적이다디스크 중 1개라도 완전히 고장이 날 경우 RAID 0으로 구성

된 모든 데이터를 망실하게 된다이러한 이유로 RAID가 주로 사용되는 분야에서는 RAID 0만으로는

시스템을 구축하지 않는다.

 

3. RAID 1 구성하기

[1] RAID1구성에 대해서 알아보자본 메뉴얼에서는 8개의 디스크를 2개씩 미러링하는 방식으로 진행한다.

드라이브 구성하는 페이지에서 두개의 디스크를 선택하고 “Add To Array를 클릭한다그 다음

Accept DG버튼을 클릭하여드라이브 그룹을 적용해준다.

 

[2] 다음 디스크 두개를 선택하여“Add To Array를 클릭한다같은 방식으로 “Accept DG버튼을

클릭하여, 2번째 드라이브 그룹을 적용해준다.

 

[3] 같은 방식으로 3번째 드라이브 그룹을 생성한다.

 

[4] 마지막으로 4번째 드라이브 그룹을 생성하고, “Next버튼을 클릭하여 다음으로 진행한다.

 

[5] 생성했던 첫번째 드라이브를 확인하고, “Add to SPAN을 클릭한 후 다음화면으로 진행한다.

 

[6] 다음 화면에서 RAID 1을 선택하고 그에 맞는 용량을 확인한 후 Select Size에 입력해준 후 “Accept

클릭하여 적용해 준다VD가 추가되었다면, “Back를 클릭하여 이전 화면으로 돌아간다.

 

[7] 이전 화면에서 같은 방식으로 두번째 드라이브를 추가해준 뒤 다음으로 이동한다.

 

[8] 같은 방식으로 RAID1을 선택하고 용량을 입력 후 “Accept를 누르고 이전화면으로 이동한다.

 

[9] 세번째 드라이브를 추가 해주고 다음으로 이동한다.

 

[10] 세번째 VD를 생성해주고다시 이전화면으로 돌아간다.

 

[11] 마지막 드라이브를 추가해주고 다음으로 진행한다.

 

[12] 동일한 방법으로 마지막 VD를 생성해주고 다음으로 진행한다.

 

[13] VD를 최종 확인하고, “Accept을 클릭하여 적용해준다.

 

[14] 캐싱활성화는 취소하고, VD초기화는 동의하여 진행한다.

 

[15] 초기화를 진행하고완료가 되면 “Home버튼을 클릭하여 초기화면으로 돌아간다.

 

[16] 초기화면에서 RAID 1로 설정된 드라이브 그룹을 확인하고, “Exit를 클릭하여 리부팅을 진행한다.

 

[17] 리부팅 후 OS에서 디스크를 확인해보면 500GB의 장치가 4개로 확인된다.

※ 500GB * 4EA 로 확인이 되는 이유는 총 8개의 디스크를 2개씩 Mirroring하여 4개의 장치를 만들었기

때문이다보통의 RAID 1로 미러링하는 방식이라면 11로 구성한다그 이상으로 구성할 경우 속도와

효율성면에서 단점을 들어내기 때문에 추천하지 않는다.

 

 

4. RAID 5 구성하기

[1] RAID5구성에 대해서 알아보자드라이브 구성하는 페이지에서 RAID 0을 구성할때와 같은 방식으로

디스크를 모두 선택하고 “Add To Array를 클릭한다그 다음 Accept DG버튼을 클릭하여,

드라이브 그룹을 적용해준다.

 

[2] Drive Groups에 디스크가 추가된 것을 확인할 수 있다여기서 “Accept DG버튼을 클릭하면드라이브

그룹이 적용되면서 용량이 표시되는 것이 보인다. “Next버튼을 클릭하여 다음화면으로 이동하자

 

[3] 다음화면에서 어떤 방식의 레이드를 구성할 수 있는지 나온다. “Add to SPAN버튼을 클릭하면,

Span부분에 드라이브 그룹이 추가된 것을 확인할 수 있다Next버튼을 클릭하여 다음화면으로

이동한다.

 

[4] RAID 5 로 설정하고용량을 확인하여 입력해준다그 다음 “Accept를 클릭하여 VD를 생성해주고,

다음으로 넘어간다.

 

[5] VD 생성한 것을 한번 더 확인하고적용을 한 뒤 설정내용을 저장해준다.

 

[6] 캐싱활성화는 취소하고VD초기화를 진행한다.

 

[7] 최종적으로 초기화를 진행하고 홈화면으로 돌아간다.

 

[8] RAID 5로 설정이 완료된 것을 확인할 수 있다다음 “Exit를 클릭하여리부팅을 진행한다.

 

[9] 리부팅 후 OS에서 디스크를 확인해보면 RAID 5로 설정한 디스크용량을 확인할 수 있다.

※ 같은 방식으로 디스크 8개를 한번에 묶은 RAID 0과는 다르게4TB에서 대략500GB 정도 모자란,

3,493GB로 확인이 된다이유는 디스크마다 패리티 데이터가 있기 때문이다초반에 설명하였던 것 처럼

디스크에 장애가 발생하였을때 RAID 5는 패리티정보를 통한 리빌딩이 가능하다기본 근간은 Stripe방식

이기 때문에 읽기쓰기 성능에서 장점을 보인다.

※ RAID 5는 RAID 0 의 단점을 보완한 기술이라고 볼 수 있다많은 용량을 쓰면서 디스크 하나가 문제

되었을때패리티비트를 통한 데이터 복구가 가능하다는 점과 읽기쓰기의 속도면에서 큰 장점이 있지만,

리빌딩을 진행할때 드라이브 용량에 따라 배열의 재구성에 다소 시간이 걸리고 운영중인 시스템의 성능이

저하될 수 있다.

 

5. RAID 10 구성하기

[1] RAID 10은 드라이브 그룹을 구성할때 RAID 1을 구성했을때와 같이 2개의 디스크를 하나의 드라이브

로 구성한다두개의 디스크를 선택하고 “Add To Array를 클릭한다그 다음“Accept DG버튼을

클릭하여드라이브 그룹을 적용해준다.

 

[2] 다음 디스크 두개를 선택하여“Add To Array를 클릭한다같은 방식으로 “Accept DG버튼을

클릭하여, 2번째 드라이브 그룹을 적용해준다.

 

[3] 같은 방식으로 3번째 드라이브 그룹을 생성한다.

 

[4] 마지막으로 4번째 드라이브 그룹을 생성하고, “Next버튼을 클릭하여 다음으로 진행한다.

 

[5] 드롭박스를 클릭해보면 전 화면에서 추가한 4개의 드라이브 그룹을 확인할 수 있다.

Add to SPAN을 클릭하여 순서대로 더 해준뒤 다음으로 넘어간다.

 

[6] RAID 10을 선택한 후 그에 맞는 용량을 확인하고 Select Size부분에 알맞게 입력한 뒤 “Accept버튼을

클릭하여 적용해준다생성한 VD가 적용되는 것을 확인할 수 있다.

 

[7] 다음화면에서 한번 더 VD를 확인하고 적용 후 저장해준다.

 

[8] 지금까지 설정한 값으로 초기화를 진행하고 완료 후 “Home버튼을 클릭하여 처음화면으로 돌아간다.

 

[9] 초기화면으로 돌아오면 RAID 10으로 묶인 것을 확인할 수 있다. “Exit를 클릭하여 리부팅한다.

 

[10] OS에서 디스크의 용량을 확인해보면 전체디스크(500GB * 8EA)의 용량의 반인 2TB로 확인이 된다.

※ RAID10은 Stripe방식인 RAID 0의 빠른 I/O 성능과 Mirroring방식인 RAID 1의 안정성을 두루갖춘

하이브리드형 기술이라고 할 수 있다하나의 디스크에 문제가 발생하여도데이터 무결성에 영향을

주지 않고 데이터를 다른 미러에서 제공하기 때문에 운영에 문제가 생기지 않는다.

 

※ 데이터의 내결함성은 고장난 디스크를 교체하여 리빌딩함으로써 복원할 수 있다.

 

3. 툴을 이용한 RAID 서버 관리

1. MegaCLI 설치

 MegaCLI란 펌웨어 업데이트를 위해 필요하며해당 명령어로 RAID의 상태등을 확인할 수 있다.

※ 3DM2이라는 로컬 그리고 외부 웹에서 여러 기능을 수행할 수 있는 좋은 툴이 있지만아쉽게도 해당버전의

컨트롤러에서는 지원을 하지 않는다.

 

※ 앞으로 진행될 실습에서는 RAID 10의 구성에서만 진행된다.

 

[1] 먼저 인스톨 파일을 다운받는다.

# cd /usr/local/src/

# wget http://mirror.nforce.com/pub/software/raidtools/Megaraid/8-07-14_MegaCLI.zip

 

[2] 압축을 풀고, Linux디렉터리로 들어가 rpm명령어를 통한 패키지 설치를 진행한다.

# unzip 80714_MegaCLI.zip

# cd Linux

# rpm ivh MegaCli8.07.141.noarch.rpm

 

[3] 설치가 완료되면 명령어파일을 심볼릭링크 걸어준다.

# ln s /opt/MegaRAID/MegaCli/MegaCli64 /bin/MegaCl

 

[4] 툴 설치가 정상적으로 되었는지 명령어를 통해 각 슬롯의 디스크 상태를 확인해본다.

# MegaCli -PDList -aAll -NoLog | egrep “Slot Number:|Error|Inquiry Data:|state”

 

2. MegaCLI 명령어

 “MegaCli” 명령어를 통해 RAID관련 장치들의 정보를 확인하고설정이 가능하다.

 

[1] 논리적 디스크 정보를 확인할 수 있는 명령어이다어떤 방식의 RAID를 구성하였는지 확인할 수 있다.

# MegaCli LDInfo Lall aALL

 

[2] 요약된 디스크 정보를 확인할 수 있는 명령어다장애 상황을 시뮬레이션 하기 위해 5번포트에 있는

디스크를 제거 후 확인해보았다. “Controller상태 부분에 주의를 요한다는 “Need Attention

출력되는 것을 확인할 수 있고, 0 ~ 7번 슬롯 중 제거한 5번포트는 목록에 나오지 않는 것을 알 수

있으며 “Virtual drive의 상태 역시 “Degraded로 나와 문제가 있다는 것을 최종확인 가능하다.

MegaCliShow ShowSummary aALL

 

[3] 다시 디스크를 장착하고조금 더 자세한 디스크정보를 알 수 있는 명령어를 통해 확인해보면,

Firmware state부분에 “Unconfigured(bad)라고 출력이 되면서 장착 후에도 문제가 해결 되지

않음을 알 수 있다.

MegaCli pdlist a0 |more

 

[4] 디스크가 문제가 생겨 새 디스크를 장착하였다고 가정하고 리빌딩을 진행해보도록 해보자.

먼저 문제가 있는 5번포트의 “Unconfigured상태 부분을 “Good으로 변경해준다.

MegaCli -pdmakegood -physdrv [252:5] -a0

 

[5] 그 다음 5번포트에 대한 Rebuilding을 진행해준다.

# MegaCli -pdhsp -set -physdrv [252:5] -a0

 

[6] 다음 명령어로 리빌딩의 진행상황을 확인할 수 있다.

# MegaCli -PDRbld -ShowProg -PhysDrv[252:5] -a0

 

[7] 디스크정보를 다시 확인해보면상태부분이 기존 문제가 있었을때 “Unconfigured(bad)” 라고

나오던 것이 “Rebuild라고 나오면서 리빌드가 진행되고 있다는 것을 한번 더 확인할 수 있다.

※ “Firmware state에 정상작동시에는 Online이라고 나온다.

MegaCli pdlist a0 |more

 

[8] 리빌드가 완료되면 디스크 요약정보를 다시 확인하여디스크의 상태가 모두 정상적인지 확인 한다.

이 처럼 RAID 10의 구성에서는 중복데이터를 통해 운용에 지장없이 배열의 재구성이 가능하다.

MegaCli pdlist a0 |more

 

[9] 기타 명령어

– 펌웨어 상태확인

# MegaCli -PDlist -aALL |grep -iE “slot|firmware”

– Adapter 정보확인

# MegaCli -AdpAllInfo -aALL

– Enclosure 정보확인

# MegaCli -EncInfo -aALL

– 컨트롤러디스크 로그확인

# MegaCli -fwtermlog -dsply -aALL

 

4. MegaRAID Storage Manager설치(서버)

MSM이라는 프로그램을 통하여외부에서 RAID 서버에 대한 상태를 확인할 수 있을 뿐만 아니라 디스크

드라이브를 쉽게 재구성을 할 수 있다먼저 서버에서 설치를 진행해보자

 

[1] 먼저 MSM 최신버전 리눅스용으로 설치파일을 다운받는다.

# cd /usr/local/src/

# wget http://mirror.yourwebhoster.eu/misc/lsi/MSM_linux_x64_installer-16.11.00-03.tar.gz

 

[2] 압축을 풀고, “disk디렉터리로 이동한다.

# tar xvfz MSM_linux_x64_installer-16.11.00-03.tar.gz

# cd disk/

 

[3] “RunRPM.sh파일을 스크립트 명령어를 통해 실행해주면 자동으로 설치가 진행된다.

# sh RunRPM.sh

 

[4] 포트체크를 해보면 3071번 포트가 정상적으로 올라와 있는 것을 확인할 수 있다.

 

3. MegaRAID Storage Manager설치(클라이언트)

클라이언트에서 해당 툴을 통해 외부에서 사용할 수 있게 MSM설치를 진행해보자

 

[1] 먼저 브라우져를 통해 공식홈페이지에 접속하여 RAID 컨트롤러 버전을 검색해 보자

http://www.avagotech.com/support/download-search

 

[2] 검색 후 목록중에 “Management Software and Tools를 찾아 클릭한다.

 

[3] 다음화면에서 “Latest MegaRAID Storage Manager (MSM)을 클릭하고 내용에 동의한 후 최신버전을

다운로드 한다.

 

[4] “setup파일을 실행하여 설치를 시작해보자

 

[5] 초기 설치화면에서 라이센스 동의 후 다음으로 진행한다.

 

[6] 조직명을 입력하고경로를 선택해주고 다음으로 진행한다.

 

[7] “Complete을 선택하고 다음, “No를 선택한 뒤 다음으로 이동한다.

 

[8] 계속 다음으로 진행한다.

 

[9] “Install을 클릭하여 설치를 진행하고 완료한다.

 

3. MegaRAID Storage Manager를 통한 운영

클라이언트에서 툴설치가 끝나면 본격적으로 툴을 통한 운영을 해보도록하자

 

[1] MSM툴 설치를 완료하면 바탕화면에 “MegaRAID Storage Manager라는 이름으로 아이콘이 생긴다.

해당 아이콘을 실행시키고접속할 RAID서버의 IP를 입력한 뒤 “Discover Host를 클릭하면 하단에

세션이 정상적으로 연결되는 것이 확인된다다음 목록을 클릭하고 “Login버튼을 클릭한다.

 

[2] 다음 로그인창에서 서버의 root계정으로 접근하면최초 RAID설정이 되어 있지 않은 상태이므로

디스크의 정상인식만 확인할 수 있다.

[3] 새롭게 RAID를 잡아 보도록하자 “Logical탭을 클릭하고 상단에 “Create Virtual Drive아이콘을

클릭하여 VD생성 창이 나오면“Advanced를 클릭하여 다음으로 진행한다.

 

[4] 구성할 RAID를 선택하는 화면이 나온다. RAID 10으로 진행 해보자 디스크 두개를 선택하고 “Add

클릭한다.

 

[5] “Create Span을 클릭하여 Span을 추가해주고디스크를 Span마다 2개씩 추가하는 방식으로 0 ~ 3

Span을 생성해준다그렇게 4개의 Span을 생성하고, “Create Drive Group을 클릭한 뒤 다음으로

넘어간다.

 

[6] 드라이브 이름을 정해주고초기화는 “Fast Initialization을 선택하여 VD를 생성해준다.

다음 경고 문구가 나오는데 해당 내용에 동의하여 진행한다.

 

[7] RAID10의 설정을 확인하고 “Finish를 클릭하여 완료한다.

 

[8] 다음 “Refresh아이콘을 클릭하면, RAID 10으로 구성이 정상적으로 확인되는 것을 볼 수 있다.


[출처] http://idchowto.com/?p=35534



반응형

댓글()

Ubuntu apt-get 소스리스트 변경 (kr.archive.ubuntu.com)

리눅스/OS 일반|2018. 2. 12. 16:22
반응형

이번에 리눅스 세팅하면...워낙 이것저것 설치하고 삭제하고 테스트하고 하느라...ㅎ

apt-get 을 엄청 썼는데...가끔 다운로드 소스 서버가 버벅이는 걸 경험해서...

찾아보니 다음에도 같은 미러사이트가 있는 모양이다...

바꾸고 나니 엄청 빨라진다...ㅎ

 

먼저 백업본을 만들고...

 

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

 

문자열 치환을 하면 됨...

 

$ sudo sed -i 's/kr.archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list

$ sudo sed -i 's/security.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list

 

이제 테스트...

 

$ sudo apt-get update

 

다음으로 붙어서 업데이트를 잘 하면 성공...



반응형

댓글()

VM 사설 아이피 잡히지 않을 경우

리눅스/OpenStack|2018. 2. 12. 08:43
반응형
문제
VM 네트워크 연결 불가 (ifconfig 시 사설 ip정보 안나옴)



조치

방법 1. 컴퓨트 노드 변경

hl-255-188 > hl-255-189 로 이전

> 위 방법으로 해결되지 않았음


방법 2. 네트워크 수동 설정

/etc/sysconfig/network-scripts/ifcfg-eth0 파일에서 dhcp 를 static 으로 변경하고 아래 내용 추가

(사설만 잡으면 공인도 통신되므로 ifcfg-eth0 파일만 수정 진행)


IPADDR=172.16.0.6

NETMASK=255.255.0.0

GATEWAY=172.16.0.1

MTU=1450  // ifconfig 시 1500 으로 표시되어 수동으로 값 입력


> 이후 네트워크 통신 확인 > 다시 dhcp 로 설정 변경 > 네트워크 통신 확인 > 작업 완료



반응형

댓글()

export 를 이용한 telnet 명령어 일괄 처리

리눅스/OS 일반|2018. 1. 29. 11:30
반응형

아래는 POE 스위치로 전원을 켜는 스크립트입니다. (스플리터를 이용해 전원스위치를 만든 상황)

텔넷으로 로그인하고 프롬프트에 따라 입력값을 넣도록 하였습니다.

중간에 sleep 을 5로 주면 서버가 꺼집니다.


# yum install expect


# vi test.sh

#!/bin/sh

/usr/bin/expect << EOF 

spawn telnet 192.168.99.36

expect "'^]'."

expect "Username:"

send "admin\r";

expect "Password:"

send "12345678\r";

expect "L2GS99-2-1#"

send "configure\r";

expect "L2GS99-2-1(config)#"

send "interface ethernet 1/6\r";

expect "L2GS99-2-1(config-if)#"

send "power inline\r";

sleep 2;

expect "L2GS99-2-1(config-if)#"

send "no power inline\r";

expect "L2GS99-2-1(config-if)#"

send "end\r";

expect "L2GS99-2-1#"

send "exit\r";

EOF    // 좌측에 공백 (들여쓰기) 이 있으면 안됨



expect "L2GS99-2-1#" 과 같이 호스트 별로 출력되는게 다를 경우 아래와 같이 일부만 입력하여 사용이 가능합니다.
expect "#"


반응형

댓글()

로드발란서 (LB) 에 대한 정리

리눅스/OpenStack|2018. 1. 25. 17:18
반응형

프로토콜 방식

 

1) TCP, HTTPS

- 클라이언트 IP 가 남지 않고, LB 서버의 사설IP 가 남게 됨

- round-robin 의 경우 IP 변경이 잘 안됨

- 헬스 체크 방식 : 포트 / 웹서버에 헬스체크 로그 남지 않음

 

2) HTTP

- 클라이언트 IP 가 서버 로그에 남게 됨 (아래 설정 필요)

- round-robin 의 경우 IP 변경이 잘 됨

- 헬스 체크 방식 : 모니터링 페이지 / 웹서버에 헬스체크 로그 남음

 

* HTTP 로 하였다 하더라도 아파치 웹서버에서 'X-Forwarded-For' 설정을 통해야 클라이언트 IP 로 남길 수 있습니다.

 

# vi /usr/local/apache/conf/httpd.conf

LoadModule remoteip_module modules/mod_remoteip.so

LogFormat "%h %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" X-Forwarded-For

CustomLog /usr/local/apache/logs/sysdocu.tistory.com-xforwarded.log X-Forwarded-For

* %h 가 리모트 IP 입니다.

 

* SSL 을 사용하려면 TCP 를 이용해야 합니다.

(로드발란서에서 443 인증서를 설치하고, 웹서버의 80번 포트로 연결시키면 됩니다)

 

* 웹서버 로그에는 IP 가 잘 찍히는 데 소스상에서 출력되지 않는다면 두가지 방법중 하나를 사용하면 됩니다.

 

1) 웹서버에서 설정할 경우

httpd.conf 에 아래 옵션 추가

RemoteIPHeader X-Forwarded-For

 

2) 웹소스에서 설정할 경우

function get_client_ip() {
    $ipaddress = '';
    if (getenv('HTTP_CLIENT_IP'))
        $ipaddress = getenv('HTTP_CLIENT_IP');
    else if(getenv('HTTP_X_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
    else if(getenv('HTTP_X_FORWARDED'))
        $ipaddress = getenv('HTTP_X_FORWARDED');
    else if(getenv('HTTP_FORWARDED_FOR'))
        $ipaddress = getenv('HTTP_FORWARDED_FOR');
    else if(getenv('HTTP_FORWARDED'))
        $ipaddress = getenv('HTTP_FORWARDED');
    else if(getenv('REMOTE_ADDR'))
        $ipaddress = getenv('REMOTE_ADDR');
    else
        $ipaddress = 'UNKNOWN';
    return $ipaddress;
}

echo get_client_ip(); 

 

반응형

댓글()

qemu-img 명령으로 사용하는 이미지 원본 파일 확인

리눅스/OpenStack|2018. 1. 24. 13:30
반응형

qemu-img info /var/lib/nova/instances/인스턴스ID/disk

반응형

댓글()

nova VM 또는 cinder Volume 상태를 임의로 변경하기

리눅스/OpenStack|2018. 1. 24. 09:19
반응형

[VM]

특정 값으로 변경하고 싶을때는 아래와 같이 합니다.

# nova reset-state 81ac35c5-b602-5525-aef6-40c7ba611cf8 active    // active 상태로 변경



[Volume]

# cinder reset-state 37324a01-4bd3-4357-817d-50cbddadc440      // 상태 변경 (기본값 available 으로)

# nova volume-show 37324a01-4bd3-4357-817d-50cbddadc440    // 상태 확인



반응형

댓글()

VM name 변경하기

리눅스/OpenStack|2018. 1. 15. 08:37
반응형

# nova rename [VM ID 값] [새로운 이름]

// ID 값이 변경되는게 아니고 VM 의 name 이 변경된다 (nova show 로 확인)



아래는 실제 작업 내용

> sysdocu 를 newvm 으로 변경하는 작업


admin 계정

# openstack project set --name newvm sysdocu

# openstack user set --name newvm --password 8a8eeba5a31f7a6dce20472e99eb57ea3e2ef6bdea1e828eee949ea1fb991178 sysdocu

# neutron net-update --name=newvm d4e3f087-b609-41e0-82c7-2b1d3e56588e


newvm 계정

# neutron net-update --name=newvm d4e3f087-b609-41e0-82c7-2b1d3e56588e

# neutron subnet-update --name newvm sysdocu

# nova rename sysdocu newvm_11260



반응형

댓글()

네트워크 속도 체크하기 (iperf)

리눅스/Network|2018. 1. 9. 09:15
반응형

속도 체크 대상 서버와 클라이언트에 iperf 를 설치 합니다.

[root@sysdocu ~]# apt -y install iperf


서버에서

[root@sysdocu ~]# iperf -s


클라이언트에서

[root@sysdocu ~]# iperf -c 192.168.0.10 -i 1 -t 10



[10G 속도 정상일 경우]


[root@sysdocu ~]# iperf -c 192.168.0.10 -i 1 -t 10

------------------------------------------------------------

Client connecting to 192.168.0.10, TCP port 5001

TCP window size: 85.0 KByte (default)

------------------------------------------------------------

[  3] local 192.168.0.12 port 38508 connected with 192.168.0.10 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0- 1.0 sec  1.09 GBytes  9.34 Gbits/sec

[  3]  1.0- 2.0 sec  1.08 GBytes  9.31 Gbits/sec

[  3]  2.0- 3.0 sec  1.09 GBytes  9.39 Gbits/sec

[  3]  3.0- 4.0 sec  1.08 GBytes  9.29 Gbits/sec

[  3]  4.0- 5.0 sec  1.09 GBytes  9.38 Gbits/sec

[  3]  5.0- 6.0 sec  1.09 GBytes  9.33 Gbits/sec

[  3]  6.0- 7.0 sec  1.05 GBytes  9.06 Gbits/sec

[  3]  7.0- 8.0 sec  1.08 GBytes  9.31 Gbits/sec

[  3]  8.0- 9.0 sec  1.07 GBytes  9.16 Gbits/sec

[  3]  0.0-10.0 sec  10.8 GBytes  9.29 Gbits/sec


[10G 속도 비정상일 경우]


[root@sysdocu ~]# iperf -c 192.168.0.10 -i 1 -t 10

------------------------------------------------------------

Client connecting to 192.168.0.10, TCP port 5001

TCP window size: 85.0 KByte (default)

------------------------------------------------------------

[  3] local 192.168.0.12 port 49416 connected with 192.168.0.10 port 5001

[ ID] Interval       Transfer     Bandwidth

[  3]  0.0- 1.0 sec   256 KBytes  2.10 Mbits/sec

[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec

[  3]  2.0- 3.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  3.0- 4.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  4.0- 5.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  5.0- 6.0 sec   128 KBytes  1.05 Mbits/sec

[  3]  6.0- 7.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  7.0- 8.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  8.0- 9.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  9.0-10.0 sec  0.00 Bytes  0.00 bits/sec

[  3] 10.0-11.0 sec  0.00 Bytes  0.00 bits/sec

[  3] 11.0-12.0 sec  0.00 Bytes  0.00 bits/sec

[  3]  0.0-13.7 sec   640 KBytes   381 Kbits/sec



반응형

댓글()

nova resize 먹통시 리셋하기 & 이전되는 서버 찾기

리눅스/OpenStack|2018. 1. 9. 08:27
반응형

[상태 리셋 - error 로 변경]

# nova reset-state 81ac35c5-b602-4525-aef6-40c7ba611cf8

 Reset state for server 81ac35c5-b602-4525-aef6-40c7ba611cf8 succeeded; new state is error



[상태 리셋 - active 로 변경]

# nova reset-state --active 81ac35c5-b602-4525-aef6-40c7ba611cf8

Reset state for server 81ac35c5-b602-4525-aef6-40c7ba611cf8 succeeded; new state is active



그리고 어느 서버로 이동 되는지는 시간이 오래 걸릴경우 확인이 되지 않으니 아래와 같이

컨트롤러 서버에서 명령하여 똑같은 VM ID 가 존재하는 컴퓨트 노드를 검색합니다.


# for i in hl-30-{11..254};do echo $i;ssh -l root -p 2020 $i ls -al /var/lib/nova/instances/e5e3f500*;done

반응형

댓글()

aggregate 에 ratio 설정하기 (CPU 배수만큼 생성)

리눅스/OpenStack|2017. 12. 15. 15:32
반응형

그룹 확인

# nova aggregate-list


공유그룹 상세히 보기

# nova aggregate-details 1


기존 ratio 삭제

# nova aggregate-set-metadata share-zone1 cpu_allocation_ratio


새로운 ratio 값 설정

# nova aggregate-set-metadata share-zone1 cpu_allocation_ratio=6.0

반응형

댓글()