posted by 은이종 2013. 9. 26. 13:51

CMD창에 호스트명(hostname) 표시해주는 reg명령어
 
  reg add "HKLM\SOFTWARE\Microsoft\Command Processor" /v AutoRun /t REG_SZ /d "prompt [%computername%]$S$P$G"

posted by 은이종 2013. 8. 28. 20:25


1. 계정생성 시, 소속되는 기본 그룹이다.





Domain Users 권한은 아래와 같은 권한을 갖는다

=> 네트워크 설정, 원격접속 및 User(프로그램 실행 권한, 시스템 변경은 불가)



AD 계정으로 서비스를 운영하기엔 부족한 권한으로 추가적인 권한을 넣는다

Domain Admins
해당 계정은  Administrator 권한을 보유한다.


Domain Users+ Domain Admins  두개의 권한이 있으면
기본적인 서비스가 가능한 AD 계정이라고 볼 수 있다.

=====================================================================================================

2. 로그인 대상 서버 설정

기본적으로 계정을 생성하면
그 계정은 AD join 이 되어있는 서버들에 접근이 가능하다.
보안상 취약함으로, 필요한 서버들만 접근이 가능하게 수정해야한다.

해당 계정에 우클릭 후 속성으로 들어가서 해당 쪽의 수정을 해주면 된다.






'Windows > AD' 카테고리의 다른 글

AD 계정별 Policy 설정  (0) 2014.07.23
AD 그룹 정책 관리  (0) 2014.04.18
AD 장애  (0) 2014.01.17
AD join시 Open Port  (0) 2014.01.06
AD 구성  (0) 2013.04.11
posted by 은이종 2013. 8. 22. 16:22
1. client 서버에서 제대로 Update 동기화가 되지 않을 때

net stop wuauserv
net start wuauserv
Gpupdate /force
wuauclt /detectnow
 
 

2. client 가 등록이 되지 않을때, 체크 프로그램

WSUS Client Diagnostic Tool 



http://www.microsoft.com/en-us/download/details.aspx?id=30827



 

'Windows > WSUS' 카테고리의 다른 글

WSUS Server 설정  (0) 2013.08.21
WSUS Server 에서 해당 클라이언트들이 보이지 않을때  (0) 2012.11.16
posted by 은이종 2013. 8. 21. 15:05

1. 옵션 - 제품 및 등급 설정

필요한 제품만 등록

 난 W2K8 만 사용하니까 해당 사항만 등록
 
 



윈도우 업데이트에 선행되어야 할 부분인 재부팅 관련 옵션은 다음과 같이지정 할 수 있습니다.

(아래와 같이 자동 다시 시작 사용 안함을 지정 하였을 경우, 윈도우 업데이트는 설치만 될뿐 재부팅은 되지 않으며, 관리자가 원격 접속 하여 재부팅하면 업데이트가 적용됩니다.)

'Windows > WSUS' 카테고리의 다른 글

WSUS client  (0) 2013.08.22
WSUS Server 에서 해당 클라이언트들이 보이지 않을때  (0) 2012.11.16
posted by 은이종 2013. 7. 17. 21:45

OpenStack

 

  요즘 IT 분야에서는 클라우드 컴퓨팅에 대한 관심이 뜨겁다. 그러나 정작 클라우드가 무엇인지 검색해 보면 속 시원한 설명은 하나도 없다. 나 또한 작년에 클라우드를 접한 후 개념을 잡는데 상당한 시간이 걸렸었는데, 가장 좋은 방법은 역시 직접 사용해 보는 것이었다. 시중에는 클라우드 컴퓨팅의 표준이 되어가고 있는 Amazon이나 국내에서도 통신사업자, 인터넷 서비스업체들이 무료로 클라우스를 접해볼 수 있는 서비스를 제공하고 있다. 하지만 이들의 서비스를 제대로 사용하려면 일정 요금을 지불해야 한다. 또한 내부 구조가 어떻게 되어있는지 파악할 목적이라면 직접 클라우드를 구축해 보는 것이야 말로 가장 좋은 방법일 것이다.

 

  OpenStack은 Rackspace와 NASA가 주축이 되어 시작된 클라우드 매니지먼트 스택으로 Apache 2.0 기반의 오픈소스이다. 현재는 Cisco, HP, Dell, KT, Samsung과 같은 대기업들도 관심을 가지고 적극적으로 개발과 상용화에 참여하고 있으며 Canonical, Suse와 같은 Linux 진영에서도 OpenStack을 기본 패키지에 포함하여 릴리즈 할 계획을 밝히는 등 무서운 성장을 하고 있다. OpenStack은 스토리지 서비스(Swift)와 컴퓨트 서비스(Nova), 이미지 서비스(Glance) 세 가지로 이루어져 있지만 내가 사용해 본 것은 컴퓨트 서비스(이하 Nova)와 이미지 서비스(이하 Glance) 이다. 클라우드 컴퓨트 서비스란 쉽게 말해 강력한 컴퓨팅 파워나 디스크를 가진 먼지 날리고 시끄러운 서버를 집에 두는 것이 아니라 이런 서비스를 제공하는 업체의 데이터 센터에 만들어 두고 인터넷이 되는 곳이라면 어디든 접속할 수 있도록 하는 서비스이다. 작업의 자동화와 관리의 편의를 위해 가상화 기술이 여기에 이용된다. 즉, 사용자에게 제공되는 서버는 가상머신이다. 사용자의 수에 따라 서버 두 세대만 있어도 운영이 가능하다. 나 또한 처음에는 한 대의 서버로 테스트를 했었다. Nova는 원하는 OS 설치와 네트워크 연결, 보안 설정이 완료된 가상의 서버를 클릭 한 번으로 손쉽게 제공해 주는 기능을 포함하는 소프트웨어이다.

그림1.jpg

[그림 1. Nova의 역할]

  소스가 완전히 오픈되어 있고 현재도 활발히 개발이 진행 중이기 때문에 오픈소스 소프트웨어를 사랑하는 사람이라면 설치, 테스트를 해 보는 일이 상당히 재미있을 것이다.

 

2. 설치법

 

  Nova는 간단한 응용프로그램이 아니기 때문에 설치가 간단하지는 않다. 우선 Linux가 깔린 서버가 한 대 이상 필요한데, 여의치 않다면 VirtualBox를 이용해 생성한 가상머신도 괜찮다. 개발자들이 Ubuntu를 사용해서 인지 Ubuntu 환경이 가장 안정적인 것 같았다. 여러 대의 서버로 시스템을 구성하더라도 각 서버의 설치 과정은 동일하다. 서버가 준비되었다면 아래의 방법을 통해 모든 서버에 Nova와 Glance를 설치한다. 설치 과정을 모두 설명하기 보다는 가장 설명이 잘 되어있는 웹 페이지의 링크를 적어두겠다.

 

 

옵션 1. 패키지를 이용한 설치: wiki.openstack.or.kr/index.php/Nova_설치가이드

옵션 2. 스크립트를 이용한 설치: www.devstack.org

옵션 3. 소스코드를 이용한 설치: wiki.openstack.or.kr/index.php/Nova_설치가이드

 

 

  UI 기반의 설치가 아니라서 그리 쉽지는 않지만 패키지나 스크립트를 이용한 설치는 간단한 편이다. 또한 설치하는 과정을 통해 어떻게 클라우드 컴퓨트 시스템이 구성되어 있는지 이해할 수 있을 것이다. 여러 대의 서버로 시스템을 구성 할 경우 어떤 실행파일이나 서비스들이 어떤 서버에서 실행중인지만 config 파일에 잘 명시해 주면 된다.

 

3. 기능 및 사용법

 

  Nova의 설치가 완료되었다면 아래의 과정을 통해 가상머신을 생성할 수 있다. Nova 시스템에 명령을 내리는 방법은 DB, 네트워크, 계정 관리에 필요한 명령이 포함된 관리자 커맨드라인 툴 nova-manage와 가상머신 생성, 사용, 관리에 필요한 명령이 포함된 사용자 커맨드라인 툴 euca2ools, novaclient가 있다.

 

그림2.jpg

 

[그림 2. 가상머신 실행 과정]

 

1) DB 생성

그림_3.jpg    

 

2) 서버별로 필요한 서비스 실행

그림_4.jpg

 

3) 네트워크 생성 및 유동 IP 등록

그림_5.jpg  

 

4) 계정 및 인증 생성

그림_6.jpg  

 

5) Glance 실행

그림7.jpg

 

6) 이미지 등록

그림8.jpg

 

7) 이미지 등록 확인

그림9.jpg

 

8) Keypair 생성

그림10.jpg  

 

9) 이미지 확인 및 선택

그림11.jpg

 

10) 가상머신 생성

그림12.jpg

 

  커맨드라인 툴의 사용이 어렵다면 Dashboard를 이용해도 된다. 다만 Dashboard는 아직까지 불안정한 상태이고 커맨드라인 툴이 제공하는 기능을 모두 포함하고 있지는 않다.

 

그림13.jpg

[그림 3. Dashboard]

 

  이렇게 생성된 가상머신에 접속하는 방법 또한 여러 가지다. 사용 가능한 공인 IP가 있다면 가상머신에 할당해서 공인 IP로 바로 접속이 가능하다. 그렇지 않다면 OpenVPN을 이용해 가상머신과의 가상 네트워크를 만들어 접속하는 방법이 있다. 마지막으로 Web Socket이 지원되는 브라우저(Chrome, Firefox)를 통해 VNC Console 접속이 가능하다.

 

옵션 1) 공인 IP 할당

그림_14.jpg    

 

옵션 2) VPN 접속

계정 및 인증 생성 과정에서 얻어진 nova-vpn.conf와 인증파일들을 이용하면 OpenVPN 프로그램을 이용해 가상머신과 같은 네트워크에 연결이 된다. 

그림_15.jpg

 

Windows로 nova.zip 파일을 다운받아 풀고 nova-vpn.conf 파일의 확장자를 ovpn으로 변경하면 OpenVPN 프로그램을 통해 네트워크 생성이 가능하다.

 

그림16.jpg

 

3) VNC Web Console

 

그림17.jpg

 

 

4. 비교

 

  OpenStack은 오래 전에 클라우드 컴퓨팅 분야에서 자리매김을 한 Amazon의 서비스와 비교해 볼 때 기능 면에서 전혀 뒤지지 않는다. 특히 Nova는 아마존의 컴퓨트 서비스인 EC2 서비스의 API와 호환되도록 설계되었으며 OpenStack이 자체적으로 개발한 OpenStack API는 EC2 API 보다 더 다양한 인터페이스를 제공하고 있다. 뿐만 아니라 대부분의 기능을 드라이버 방식으로 수용할 수 있도록 설계하여 같은 기능이라 하더라도 관리자가 원하는 방식을 선택할 수 있어 확장성/유연성에 있어서는 Amazon의 서비스보다 큰 잠재력을 지녔다고 볼 수 있다.

 
http://www.oss.kr/41708  에서 퍼옴

참고사이트
https://launchpad.net/swift
 

posted by 은이종 2013. 7. 4. 17:21

RAID란 무엇인가?

요즘 웬만한 메인보드를 보면 RAID(레이드)를 지원한다는 내용을 발견하기가 쉽다. RAID는 예전에는 적은 용량을 가진 디스크 여러 대를 연결해 하나의 디스크처럼 만들어 사용하는 것이었지만 이제는 하드 디스크 드라이브가 갖는 성능이나 안정성을 더 향상시키기 위해서 사용된다.

RAID란 단어는 'Redundant Array Of Independent(예전에는 Inexpensive) Disk'의 약자로 굳이 해석하자면 복수배열독립(複數配列獨立) 디스크 정도로 풀이할 수 있다. RAID는 독립적으로 만들어진 2개 이상의 하드 디스크 사이를 병렬로 처리해서 데이터를 입/출력 하는 것이라 컴퓨터에 2개 이상의 하드 디스크 드라이브가 있을 때에 구성 가능하다.

물론 데스크탑용 PC에서 사용되는 3.5인치 하드 디스크가 이제는 단일 제품으로 1TB(테라바이트) 용량까지 출시되었으니 필자처럼 그 동안 용량이 모자랄 때마다 100~200GB 하드 여러 대를 가끔씩 구입해서 사용하는 사람이라면 아직도 RAID의 원래 개념인 '저렴한 하드를 하나로 묶어서 쓰기'로 생각해도 무방하겠다.

 

아무튼 기술 자체가 하드 여러 개를 지지고 볶는 일이다 보니 인터페이스나 동작이 복잡하고 시스템 자원을 많이 필요로 하기 때문에 처음에는 SCSI 인터페이스를 중심으로 하는 서버 시스템에서나 사용되곤 했지만 점차 데스크탑 시스템에서도 IDE와 SATA를 통해 RAID 기능을 지원하더니 이제는 메인보드에 기본으로 포함되기까지 한다.

 

RAID 성능 향상의 원리

RAID는 크게 스트라이핑(Strpping)과 미러링(Mirroring)으로 구분할 수 있는데, 뒤에서 설명할 RAID 규격은 모두 이 스트라이핑과 미러링을 어떤 식으로 구성했느냐에 따라 나눈 것이기 때문에 두가지 방식 차이만 잘 알아두면 RAID에 대해 절반은 알고 시작하는 것이라고 하겠다.

스트라이핑이란 논리적으로 연속된 데이터를 물리적으로 여러 개의 저장 장치에 나눠서 저장하는 방식으로 우리가 생각하는 파일 1개씩이 아니라 데이터 단위로 나뉘므로 우리가 볼 때는 하나의 하드로 나타나지만 실제로는 하나의 하드에 들어갈 내용을 여러 개의 디스크에 저장하므로 개별 하드의 데이터는 독립적으로는 쓸모가 없고 스트라이핑 된 모든 하드가 있어야 완전한 저장장치가 된다.

스트라이핑이 좋은 점은 병렬로 하드 디스크를 묶었을 때 각 하드와 데이터를 주고 받는 속도가 단일 하드에 데이터를 주고 받는 속도보다 빠르다는 것이다. 이로 인해 데이터를 하드 디스크에 쓰거나 읽기 위해서 기다려야 하는 시간에 다른 하드의 데이터를 읽고 쓰는 식으로 액세스 타임을 줄일 수 있으며, 이론상 하드 디스크를 추가할수록 성능은 증가하게 된다.

 

미러링은 말 그대로 거울에 비치는 것처럼 같은 데이터를 복수의 장치에 동일하게 저장하는 방식이다. 이것은 성능과는 관계없는 순수한 데이터 보호를 위한 안정성을 추구하는 방식으로 사용자가 직접 데이터를 백업하는 것이 아니라 데이터 자체를 동일한 형태로 2개 이상의 복수 장치에서 보관하기 때문에 한군데서 데이터가 분실되거나 파손되더라도 보존된 다른 장치에서 같은 데이터를 그대로 복구할 수 있다.

미러링의 경우는 스트라이핑처럼 성능 향상과 관계없고 오히려 복수의 하드에 같은 내용을 저장해야 하므로 성능이 같거나 미세하게 떨어질 수 있고 2개의 하드가 같은 데이터를 기록하게 되니 사용 가능한 용량도 절반으로 줄어든다. 하지만 데이터 복구가 가능하기 때문에 역시 단독 RAID 1 시스템보다는 데이터 유실의 염려가 큰 스트라이핑을 보완하는 식으로 함께 구성된다.

스트라이핑과 미러링을 어떤 식으로 구성하느냐, 그리고 두가지 방식을 보완하기 위해서 어떤 방법을 택하고 있느냐에 따라 RAID의 규격이 바뀌게 되는데... 다음 장에서는 수많은 RAID 규격 가운데 표준 규격으로 사용되는 것들과 비표준 규격이지만 데스크탑 메인보드 제품에서 지원되는 규격들을 살펴보겠다.


2. 기본적인 RAID 규격을 알아보자

RAID의 규격에는 어떤 것들이 있을까?


RAID 표준 규격 및 데스크탑 PC에서 쓰이는 비표준 규격 소개

RAID는 일정한 방식에 따라 여러 개의 디스크를 묶는 것이라 그 묶는 원리와 구성에 따라 다양한 조합으로 만들어질 수 있다. 표준 규격은 RAID 0부터 1, 2, 3, 4, 5, 6 등으로 이어지며 이와 다른 중첩(Nested) RAID와 비표준(Non Standard) RAID 레벨인 0+1, 1.5, 인텔 Matrix RAID 등이 있다. 이번 페이지는 다양한 RAID 가운데 표준 규격과 데스크탑 PC에서 많이 사용되는 나머지 규격을 간단히 설명하도록 하겠다.

 

RAID 0

RAID 0은 일반적으로 2개 이상의 하드를 병렬로 연결해서 데이터를 블록(Block) 단위로 분산해서 읽고 쓰는 방식으로 구성된다. 하나의 데이터를 복수의 하드를 이용해 분산시키기 때문에 하드 1개에 데이터를 저장하고 불러오는 것보다 훨씬 빠른 속도를 가질 수 있게 되며 하드 용량도 모두 쓸 수 있다.

이론상으로는 하드 디스크를 추가할 때마다 계속 성능이 향상되기 때문에 여러 대의 하드를 RAID 0으로 묶으면 하드 자체가 가진 물리적인 성능을 넘어 컨트롤러의 대역폭을 충분히 활용할 수 있는 강력한 드라이브를 구축할 수 있다. 하지만 안정성을 체크하는 기능이 없어 만약 1개의 하드라도 완전히 고장나면 RAID 0으로 구성된 모든 데이터를 전부 날리게 된다.

따라서 서버나 워크 스테이션처럼 RAID가 주로 사용되는 분야에서는 절대 RAID 0만으로는 RAID 시스템을 구축하지 않으며, 미러링이나 패리티 정보 저장 등 다른 방식과 함께 구성해 성능/안정성을 동시에 추구하도록 보완된 RAID 규격을 쓴다. 

PC에서도 보존해야 할 중요한 데이터가 있는 경우 RAID 0 하드에 저장하지 않는다는 것이 상식이지만, 데이터 보존용이 아니라 프로그램 설치/실행 및 캐시 용도로 사용한다면 충분히 좋은 성과를 누릴 수 있다. RAID 0 방식이 위험하긴 하지만 심심하면 깨지는 그런 형편없는 수준은 아니다.

 

RAID 1

RAID 1은 데이터의 안정성을 높이기 위해 동일한 데이터를 1개 이상의 하드에 똑같이 저장하는 방식으로 RAID 0과는 반대되는 개념이라고 할 수 있다. RAID 1로 구성한 하드는 한 쪽이 망가져도 동일한 데이터가 저장된 다른 하드가 살아있다면 데이터를 복구할 수가 있으며, RAID 구성이 풀리더라도 같은 데이터를 가진 2개의 하드 디스크가 존재하게 된다.

RAID 1은 데이터 안정성은 높지만 2개의 하드를 RAID 1로 묶으면 같은 데이터를 2개에 기록해 전체 하드 디스크 용량의 절반만 사용하게 된다. RAID 1은 2개의 하드 디스크를 1조로 묶는 것을 기본으로 하므로 RAID 1로만 시스템을 구현하지 않고 다른 RAID 방식과 합쳐서 구성하게 된다.

 

RAID 2

RAID 2는 RAID 0처럼 스트라이핑 방식이지만 에러 체크와 수정을 할 수 있도록 Hamming Code를 사용하고 있는 것이 특징이다. 하드 디스크에서 ECC 기능을 지원하지 않기 때문에 ECC(Error Correction Code)을 별도의 드라이브에 저장하는 방식으로 처리된다. 

하지만 ECC를 위한 드라이브가 손상될 경우는 문제가 발생할 수 있으며, 패리티 정보를 하나의 하드 드라이브에 저장하는 RAID 4가 나오면서 거의 사용되지 않는 방식이라고 하겠다.

 

RAID 3, RAID 4

RAID 3, RAID 4는 RAID 0, 1의 문제점을 보완하기 위한 방식으로 3, 4로 나뉘긴 하지만 RAID 구성 방식은 거의 같다. RAID 3/4는 기본적으로 RAID 0과 같은 스트라이핑(Striping) 구성을 하고 있어 성능을 보완하고 디스크 용량을 온전히 사용할 수 있게 해주는데, 여기에 추가로 에러 체크 및 수정을 위해서 패리티(Parity) 정보를 별도의 디스크에 따로 저장하게 된다.

RAID 3는 데이터를 바이트(byte) 단위로 나눠 디스크에 동등하게 분산 기록하며, RAID 4는 데이터를 블럭 단위로 나눠 기록하므로 완벽하게 동일하진 않다. RAID 3는 드라이브 동기화가 필수적이라 많이 사용되지 않고 RAID 4를 더 많이 쓴다고 한다.

RAID 0+1과는 다르게 패리티 정보 기록용 하드 1개만을 제외한 나머지 하드를 모두 스트라이핑으로 묶어 사용하게 되므로 저장 용량에서도 유리하며, 패리티 정보를 별도의 디스크에 저장하므로 스트라이핑 하드 가운데 1개가 고장나도 패리티 정보 디스크를 통해 복구가 가능하다. 하지만 패리티 디스크 쪽도 데이터를 갱신해줘야 하므로 느려질 수 있으며 패리티 디스크가 고장나면 문제가 생길 수 있다. 스트라이핑과 달리 패리티 정보 저장 및 추후 복구를 위해 XOR 연산이 필요하며, 이 때문에 고가의 RAID 컨트롤러는 XOR 연산을 담당하는 프로세서를 따로 장착하고 있다. 

 

RAID 5 
 

RAID 5는 RAID 3, 4에서 별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식으로 패리티 정보를 스트라이핑으로 구성된 디스크 내에서 처리하게 만들었다. 물론 패리티 정보는 데이터가 저장된 디스크와는 물리적으로 다른 디스크에 저장되도록 만들어 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터를 복구할 수 있도록 했다. 최소 3개부터 구성이 가능하며 하드 1개 용량만 빠지게 되므로 미러링으로 처리되는 RAID 1보다 저장 공간도 크다. 

패리티 정보가 데이터가 저장된 디스크와는 다른 디스크에 저장되기 때문에 위의 RAID 5 구성에서 만약에 3번 하드(Disk3)가 고장날 경우 A3, C2, D2, 데이터는 다른 하드에 별도로 저장된 패리티 정보를 통해서 복구하고 B 패리티 정보는 나머지 하드에 있는 B1, B2, B3 데이터를 토대로 다시 작성할 수 있다. 그러나 별도로 패리티 정보를 저장하는 작업을 해야 하므로 RAID 1보다 쓰기 성능이 떨어진다.

RAID 3, 4와 달리 패리티 정보가 저장된 디스크가 따로 없어 패리티 디스크 고장과 같은 문제에서 자유롭고 실제 서버/워크스테이션에서 가장 많이 사용되는 방식이기도 하다. 보드나라 서버 역시 3개의 하드로 RAID 5를 구성하고 있다. 

RAID 5 역시 XOR 연산을 필요로 하기 때문에 PCI 방식의 보급형 RAID 컨트롤러 카드나 데스크탑 메인보드의 내장 RAID 컨트롤러에서는 그 동안 거의 지원하지 않았던 규격이기도 하지만, 컴퓨터 성능이 올라간 요즘에는 메인보드 사우스브릿지 칩셋에 RAID 5 기능을 넣는 추세로 가고 있다.

 

RAID 6

RAID 6는 RAID 5와 같은 개념이지만 다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 데이터를 복구할 수 있게 고안되었다. 이론상 하드 3개부터 만들 수 있지만 이럴 경우는 1개의 하드에 저장될 용량을 2개의 하드로 패리티 정보를 저장하는 꼴이므로 전체 용량의 1/3만 사용 가능하게 된다. 따라서 보통 4개 이상의 하드 디스크로 구성하며 RAID 5보다 더욱 데이터 안정성을 고려하는 시스템에서 사용한다.

위의 이미지처럼 40GB 하드 4개로 RAID 6를 구성하면 패리티 정보를 저장하는데 2개 분량의 용량을 잡아먹기 때문에 실제 사용 가능한 용량은 절반에 불과하지만 4개의 하드를 스트라이핑으로 묶었기 때문에 RAID 0+1이나 RAID 10(1+0)보다 성능은 더 높고 신뢰성도 우수하다. 하지만 패리티 정보를 2중으로 저장하면서 읽기 성능은 RAID 5와 비슷하지만 쓰기 작업 구현이 아주 복잡해서 일반적으로 잘 사용되지는 않는다.

 

RAID 0+1과 RAID 10(1+0)

RAID 0+1과 RAID 10(1+0)은 RAID 0(스트라이핑)과 RAID 1(미러링) 방식을 혼합해 만들어졌다는 점에서는 매우 비슷하게 보여진다. 특히 서버/워크스테이션이 아닌 일반 사용자의 PC로 RAID를 구성한다면 많아야 4개 정도까지 묶기 때문에 RAID 0+1과 RAID 1+0을 헷갈릴 수도 있으며 실제 RAID 0+1을 RAID 10으로 표기하는 곳도 많이 있다. 필자 역시 이 둘을 혼동하는 사람 중에 하나였는데, 두 방식은 어느 쪽을 먼저 묶고 나중에 묶느냐에 따라 다르다고 한다.

RAID 0+1은 이름 그대로 RAID 0과 RAID 1을 합쳐놓은 방식이다. RAID 0으로 묶은 하드 디스크를 최종적으로 RAID 1로 구성하기 때문에 일반 RAID 1 구성보다 높은 성능을 낼 수 있으며 한쪽 RAID 0에 들어가는 하드들이 모두 고장난다고 해도 나머지 RAID 0 하드를 통해 정상 동작 및 데이터 복구를 할 수 있다.

그래도 RAID 1이 들어가므로 전체 하드 디스크 용량의 절반 밖에 사용하지 못한다는 단점은 같지만, 성능과 안정성을 동시에 추구할 수 있는데다 따로 패리티 정보를 사용하지 않기 때문에 패리티 정보를 별도로 처리할 필요가 없다. 또한 RAID 기능을 지원하는 웬만한 메인보드 컨트롤러 및 보급형 RAID 카드에서 RAID 0+1을 기본 지원하고 있어 RAID 3, 4와 달리 고급형 컨트롤러가 필요하지 않다.

 

이와 달리 RAID 10(1+0)은 RAID 1로 구성된 하드들을 최종적으로 RAID 0 방식으로 스트라이핑해서 성능을 높이게 된다. 역시 RAID 1의 미러링을 기본으로 하고 있으므로 하드 1개가 고장나도 그와 함께 미러링 된 하드를 통해 데이터 복구가 가능하다.

 

RAID 0+1과 RAID 10은 4개의 하드 디스크로 RAID를 구성할 경우 용량이나 구조에서 별 차이가 없어 보이지만 6개 이상의 하드를 사용하게 되면 위와 같은 차이가 생긴다. RAID 0+1은 RAID 0으로 구성된 하드들을 최종적으로 RAID 1로 묶는 것이라 각각 3개씩 하드가 나눠지며, RAID 10은 2개씩 RAID 1으로 묶여있는 하드들이 RAID 0으로 구성된다.

RAID 0+1은 양쪽 RAID 0 구성 중 하나씩 고장이 나면 전체 데이터가 손실되고, RAID 10은 미러링 된 하드 2개가 동시에 고장 날 경우 전체 데이터가 날라간다. 물론 그 대신 RAID 0+1은 미러링 된 한쪽이 하드 전체가 망가져도 데이터를 살릴 수 있고, RAID 10도 각 RAID 1 묶음에서 하나씩이 고장이 나도 이상없이 동작한다.

그러나 RAID 0+1의 경우 1개의 하드만 고장나서 복구해도 다른 RAID 0 구성에서 나머지 하드까지 데이터 전체(A1~3, B1~3, C1~3)를 복구해야 하지만, RAID 10으로 만든 시스템은 고장난 하드가 A2, B2, C3 가 저장된 하드 1개라고 하면 미러링으로 묶인 하드를 통해 A2, B2, C2 데이터만 복구하면 되므로 실제로 운용하는데는 RAID 10이 훨씬 유리하다.

 

JBOD (Just Bunch of Disks)

제이비오디(JBOD)는 Just Bunch of Disks의 약어로 사실은 스트라이핑이나 미러링 방식을 쓰지 않았기 때문에 RAID 규격이라고 할 수 없다. 다만 여러 대의 하드 디스크를 묶어 하나의 하드처럼 보이게 만든다는 점에서 RAID와 비슷하기 때문에 함께 쓰이고, RAID 지원 컨트롤러에서 JBOD 역시 지원하는 일이 많은 것이다.

JBOD는 단순히 물리적인 여러 하드를 모아서 하나의 큰 용량을 제공하는 하드처럼 보이게 만드는 방식으로 스패닝(Spanning)으로도 불린다. 디스크 전체 용량을 사용한다는 점에서 RAID 0과 같지만 RAID 0처럼 데이터를 분산 저장하는게 아니라 디스크 순서대로 저장하기 때문에 대용량 디스크를 만들 수 있지만 실제 성능 향상은 없다. 그러나 디스크 종류/용량에 제한을 받게 되는 RAID 규격과 달리 각기 다른 용량의 디스크도 묶을 수 있다는 장점이 있다.

 

 

RAID 1.5

RAID 1.5는 RAID 비표준 규격 가운데 하나로 RAID 컨트롤러 칩셋을 만드는 회사 중 하나인 Highpoint에서 만든 것이다. RAID 15라고 불리기도 하는 이 규격은 최소 4개의 하드가 필요한 RAID 0+1 구성을 단 2개의 하드로 구성하도록 만들었다.

RAID 1.5의 동작 원리는 읽기는 RAID 0 모드로 읽기 성능을 향상시키고 쓰기 모드일 때는 RAID 1 방식처럼 2개의 디스크 모두 데이터를 기록해 안정성을 높인다는 것이다. 일단 하드 디스크의 구성은 기본적으로 미러링으로 만든 RAID 1과 같지만, 읽기에서 RAID 0처럼 미러링 된 2개의 하드에서 다른 부분을 동시에 읽어서 시간을 절약하게 된다고 한다. 위의 이미지가 RAID 1.5의 정확한 구조를 나타낸 것은 아니지만 Read, Write 부분을 보면 RAID 1.5가 어떤 방식으로 동작하는지 참고하는데 도움이 될 것이다.

하지만 쓰기 속도에서 RAID 1과 같으므로 읽기/쓰기가 반복되는 작업에서 RAID 0 만큼 체감 성능 향상을 느끼기 어려운데다 전체 하드 용량의 절반만 쓸 수 있다는 점에서 RAID 1과 같다. 어차피 2개의 하드로 RAID를 구성해야 한다면 RAID 0, RAID 1 외에는 다른 방법이 없기 때문에 RAID 1.5는 성능과 안정성에 타협을 본 방식이라 할 수 있지만 RAID 1.5를 지원하는 컨트롤러나 메인보드가 있어야 하므로 일반적으로 널리 사용되진 않는다. (예전에 보드나라에서 리뷰했던 DFI 메인보드 중 일부가 Highpoint RAID 컨트롤러를 달아 RAID 1.5를 지원했었다)

 

Intel Matrix RAID 

인텔 매트릭스 레이드(Intel Matrix RAID)는 인텔 ICH6R부터 들어간 RAID 규격으로 RAID 1.5와 마찬가지로 2개의 하드 디스크로도 RAID 0과 RAID 1을 구성할 수 있도록 한 것이다. 하지만 미러링된 RAID 1 디스크를 기반으로 하는 RAID 1.5와 다르게 2개의 하드 디스크를 수평으로 묶어서 2개의 파티션(Partition)을 만들어 한 쪽은 RAID 1으로 구성하고 다른 한쪽을 RAID 0으로 만들어 2개의 하드처럼 쓰게 된다. 물론 Matrix RAID 기술은 2개의 하드를 위한 것이 아니므로 인텔에서는 4개의 하드로 같은 방식의 RAID 0 / RAID 1 파티션을 만들어 낼 수 있다고 설명한다.

매트릭스 RAID를 구성하면 운영체제에서 각 파티션이 구분되어 2개의 하드 디스크로 잡히게 되는데, 용량은 RAID 1로 만든 쪽은 실제 묶인 하드 용량의 절반, 그리고 RAID 0 쪽은 당연히 묶인 하드 용량을 온전히 사용할 수 있어 단순한 RAID 1, RAID 1.5 방식보다 용량이나 운용면에서 이득을 준다.

중요 데이터가 있는 부분은 RAID 1로 보호하고 애플리케이션 실행처럼 빠른 하드 성능이 요구되는 쪽은 RAID 0으로 구성된 파티션에 설치해 실행하므로 성능과 용량, 그리고 데이터 보호까지 적절하게 만족시키는 타협점인데다 2개의 하드 디스크만으로 구성이 가능하기 때문에 하드가 많지 않은 일반 유저들이 데스크탑 PC로 구성하기에 적당하다. 또한 인텔 매트릭스 레이드를 지원하는 메인보드들에서 호환되기 때문에 특별한 문제가 없다면 ICH6R에서 ICH9R까지 같은 매트릭스 레이드 구성을 보존해준다고 알려지고 있다.

하지만 비표준 RAID 규격으로 일반 RAID 컨트롤러에서 사용할 수 없고 인텔 메인보드만 지원하기 때문에 업그레이드 범위가 제한된다는 단점은 있다. 굳이 Matrix RAID라는 용어를 쓰지 않더라도 일부 RAID 컨트롤러는 전체 RAID 볼륨 용량을 나누는 방법으로 2개의 하드에 RAID 0, 1을 따로 구성할 수 있다.

posted by 은이종 2013. 5. 24. 15:56
간단하게 http stop 후 start하는 스크립트
start 후 http 데몬이 0인지 체크해서, 다시 시작하는 설정

내용상의 
/app/apache/bin/startHttpd.sh는
apachectl start가 포함되어있는 스크립트이다
(apache 데몬 소유 권한떄문에 스크립트를 만들어서 구동)

---------------------------------------------------------
#!/bin/bash
date

DAEMON=http
COUNT=$(ps acx | grep -c $DAEMON)

/app/apache/bin/startHttpd.sh stop

while [ 1 ]
do
COUNT=$(ps acx | grep -c $DAEMON)
if [ "$COUNT" -ne "0" ]; then
echo $COUNT
sleep 1
else
break;
fi
done

/app/apache/bin/startHttpd.sh
sleep 1

COUNT=$(ps acx | grep -c $DAEMON)
### http daemon check ###
if [ "$COUNT" -eq "0" ]; then
echo "$DAEMON is no running. "
echo "$DAEMON is re-start."
/app/apache/bin/startHttpd.sh
fi

echo "Apache restart done!"

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


/app/apache/bin/startHttpd.sh 
posted by 은이종 2013. 5. 6. 19:40


1. 하둡 배경

하둡은 HDFS, MapReduce를 소프트웨어로 구현한 것으로 아파치 Top-Level 프로젝트입니다. 

코어는 Java, C/C++, Python등을 지원하는데요. 기본적으로 JDK는 설치되어 있어야 Hadoop을 구동할 수 있습니다. 


OS : CentOS 6.2 x64
JDK 설치

http://www.oracle.com/technetwork/java/javase/archive-139210.html
 

jdk-6u33-linux-x64.bin 로 설치 진행


/usr/local/ 파일이동
chmod 755
./jdk-6u33-linux-x64.bin
 설치


환경변수 설정

vi /etc/profile


export JAVA_HOME=/usr/local/jdk1.6.0_33

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH="." 

source /etc/profile

설치확인
java
javac
java -version



2. 하둡 설치
 

http://ftp.daum.net/apache/hadoop/common/hadoop-1.0.4/ 

현재 1.0.4버전으로 테스트

wget 
http://ftp.daum.net/apache/hadoop/common/hadoop-1.0.4/hadoop-1.0.4-bin.tar.gz 


압축을  /usr/local/에 풀고 설정 진행

/usr/local/hadoop-1.0.4 



ㅇ환경변수 설정

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.6.0_33

export HADOOP_INSTALL=/usr/local/hadoop-1.0.4

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_INSTALL/bin

export CLASSPATH="."



source /etc/profile
 

ㅇ하둡 동작 확인

[root@HadoopMaster /]# hadoop version

Hadoop 1.0.4

Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290

Compiled by hortonfo on Wed Oct  3 05:13:58 UTC 2012

From source with checksum fe2baea87c4c81a2c505767f3f9b71f4

 

3. 하둡 기본 동작

하둡은 다음의 세가지 방식 중 한가지로 동작합니다. 

Standalone mode
- 데몬 프로세스가 동작하지 않고 모두 단독의 JVM 내에서 동작한다. 테스트하고 디버그가 쉽기 때문에 개발에 적합하다. 
Pseudo-distributed mode
- 하둡 데몬 프로세스가 로컬 컴퓨터에서 동작하므로 클러스터를 시뮬레이션 할 수 있다. 
Fully distributed mode
- 하둡 데몬 프로세스가 여러 컴퓨터로 구성된 그룹에서 동작한다. 


이 중에서 Standalone mode는 아무것도 설정해 줄 것이 없으므로(...)


Pseudo-distributed mode로 설정

환경설정

vi /usr/local/hadoop-1.0.4/conf

[출처] [빅데이터] (1) HADOOP 설치 및 환경설정|작성자hadoop-env.sh 설정

JAVA 및 하둡 경로 추가


export JAVA_HOME=/usr/local/jdk1.6.0_33

export HADOOP_INSTALL=/usr/local/hadoop-1.0.4



*SUPPRESS와 관련된 것은 나중에 하둡을 실행할 때 경고메시지를 보지 않기 위함이다.

아래의 xml파일들은 <configuration>태그안에 각각의 내용을 넣어주면 된다.
[core-site.xml : HDFS와 맵리듀스에 공통적으로 사용하는 IO 등을 설정] 
#vi core-site.xml

        <property>
                <name>fs.default.name</name>
                <value>hdfs://localhost:9000</value>
        </property>

 

[hdfs-site.xml : 네임노드, 보조네임노드, 데이터 노드 등 HDFS 데몬을 설정]

#vi hdfs-site.xml

*자신의 설정에 맞도록 수정해야함.

        <property>
                <name>dfs.name.dir</name>
                <value>/home/csock/hadoop/hadoop-1.0.4/dfs/name</value>

        </property>

 

        <property>
                <name>dfs.data.dir</name>
                <value>/home/csock/hadoop/hadoop-1.0.4/dfs/data</value>

        </property>

 

[mapred-site.xml : Job Tracker와 Task Tracker 등 맵리듀스 데몬을 설정] 

#vi mapred-site.xml

 

        <property>

                <name>mapred.job.tracker</name>

                <value>localhost:9001</value>

        </property>


        <property>

                <name>mapred.system.dir</name>

                <value>/home/csock/hadoop/hadoop-1.0.4/mapred/system</value>

        </property>


        <property>

                <name>mapred.local.dir</name>

                <value>/home/csock/hadoop/hadoop-1.0.4/mapred/local</value>

        </property>



[masters : 마스터 목록을 설정]
#vi masters
localhost

 

 

[출

처] [하둡

a] 설치하기|작성자 카르마

 

[slaves : 슬레이브 목록을 설정]
#vi slaves
localhost

여기까지가 conf 디렉토리 내의 설정파일을 수정하는 과정이다.
다음은 SSH를 이용하여 각각의 노드들이 상호작용하는데 문제가 없도록 SSH키를 등록하는 과정이다.

[SSH 설정 : 서로다른 노드에 패스워드없이 로그인 할 수 있도록 설정]
키 생성
#ssh-keygen -t rsa

키 복사
#cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

확인 - 비밀번호를 물어보지 않는다면 성공한 것이다.
#ssh localhost

여기까지 SSH설정이 끝났으면 마무리하는 단계인 네임노드 포멧을 해야 한다.

[네임노드 포멧]
#hadoop namenode -format

모든 하둡 설정을 마쳤다. 다음은 실제 하둡을 실행하는 방법이다.
-HDFS와 맵리듀스를 함께 시작
#start-all.sh
-HDFS와 맵리듀스를 함께 중지
#stop-all.sh

-HDFS만 시작
#start-dfs.sh
-HDFS만 중지
#stop-dfs.sh

-맵리듀스만 시작
#start-mapred.sh
-맵리듀스만 중지
#stop-mapred.sh

모든 과정이 정상적으로 이루어졌다면 start-all.sh를 실행했을 때, 각각의 프로세스 번호가 출력된다. 만약 잘못되었다면 logging이라는 메시지와 함께 로그가 담긴 파일명을 출력한다.

해당 로그는 하둡이 설치된 디렉토리 /home/csock/hadoop/hadoop-1.0.4/logs에 있으며
*.log파일을 열어보면 에러메시지 등을 확인 할 수 있다. 
주의해야 할 점은 *.log파일은 append되기 때문에 가장 최근 로그를 확인하고 싶으면 아래쪽으로 내려서 확인해야 한다.

하둡이 시작되면 웹브라우저에서 현재 상태를 모니터링 할 수 있다.
맵리듀스 모니터링  http://localhost:50030     
HDFS 모니터링      http://localhost:50070 


다음은 하둡을 이용하여 예제를 테스트해 보는 과정이다.
하둡에서 사용하는 HDFS는 아래와 같이 hadoop dfs명령을 통해 일반 리눅스와 같이 제어할 수 있다.

하둡의 기본 예제가 들어있는 jar파일이 하둡이 설치된 가장 바깥쪽 디렉토리에 있기 때문에 해당 경로로 이동한다.
#cd /home/csock/hadoop/hadoop-1.0.4/

mkdir명령을 이용하여 input이라는 디렉토리를 HDFS에 생성한다.
#hadoop dfs -mkdir input

현재 디렉토리에 기본적으로 들어있는 CHANGES.txt파일을 HDFS의 input디렉토리에 넣는다.
#hadoop dfs -put CHANGES.txt input/

단어개수를 세는 예제파일을 실행한다.(wordcount)
#hadoop jar hadoop-examples-1.0.4.jar wordcount input output
*여기서 hadoop-examples-1.0.4.jar에 있는 wordcount예제를 실행하는데, 입력으로는 아까 생성한 input디렉토리에 있는 모든 파일을 넣고, 프로그램을 실행한 결과파일들은 output디렉토리에 담긴다.

예제를 실행한 후 모니터링 시스템을 이용하여 현재 상태를 모니터링 할 수 있다.

예제를 실행한 결과를 확인하는 방법은 아래와 같다.
#hadoop dfs -ls output
-rw-r--r--   3 csock supergroup          0 2013-02-06 20:54 /user/csock/output/_SUCCESS
drwxr-xr-x   - csock supergroup          0 2013-02-06 20:53 /user/csock/output/_logs
-rw-r--r--   3 csock supergroup     160967 2013-02-06 20:54 /user/csock/output/part-r-00000

여기서 part-r-00000이라고 된 파일이 예제를 실행한 결과가 저장된 파일이다. cat을 이용하여 내용을 보면 실제 결과를 확인할 수 있다.
#hadoop dfs -cat output/part-r-00000


*start-all.sh를 이용하여 시작했는데 로그에 Safe모드 어쩌고 라고 나올 경우 아래의 명령어를 입력한 뒤 start하면 된다.
#hadoop dfsadmin -safemode leave

*만약 로그에 연결오류 등이 발생할 경우 해당 포트에 대한 방화벽 설정을 풀어주어야 한다. 


이상으로 하둡의 기본적인 설치 및 환경설정 방법을 설명하였다. 
다음 포스트에서는 실제 다수의 서버를 이용하여 분산처리모드(Fully distributed mode)로 설정하는 방법을 다룰 예정이다.


posted by 은이종 2013. 5. 2. 17:06


Scenario:

Correctable Memory Error Threshold Exceeded (Slot x, Memory Module y) .

Corrected Memory Error Threshold Passed (Slot x, Memory Module y) .

Uncorrectable Memory Error detected by ROM-based memory validation .

Uncorrectable Memory Error (Slot x, Memory Module y) .

Solution

NOTE: Most of the Correctable and Uncorrectable Memory Errors can be solved with a BIOS update. Refer to servers BIOS release notes for fixes.

What is correctable memory error?

Correctable errors can be detected and corrected if the chipset and DIMM support this functionality. Correctable errors are generally single-bit errors. Most of the ProLiant servers are capable of detecting and correcting single-bit errors. In addition, ProLiant servers with Advanced ECC support can detect and correct some multi-bit errors.

Correctable errors can be classified as "hard" and "soft" errors.

  • Hard error typically indicates a problem with the DIMM.

  • Although hard correctable memory errors are corrected by the system and will not result in system downtime or data corruption, but still they indicate a problem with the hardware.

  • Hard error will typically cause a DIMM to exceed HP’s correctable error threshold and the user is warned about hard correctable errors.

  • Soft errors do not indicate any issue with the DIMM.

  • A soft error occurs when the data and/or ECC bits on the DIMM are incorrect, but the error will not continue to occur once the data and/or ECC bits on the DIMM have been corrected.

  • Soft error will not typically cause a DIMM to exceed HP’s correctable error threshold and is not notified about soft errors which do not indicate any issue with the hardware.

    The user is warned about a DIMM exceeding the correctable error threshold in multiple ways.

  • DIMM LEDs on the front panel or on the system board or on memory board.

  • Integrated Management Logs.

  • SNMP Traps if configured.

  • System Management Homepage and System Insight Manager.

What is uncorrectable memory error?

While correctable errors do not affect the normal operation of the system, uncorrectable memory errors will immediately result in a system crash or shutdown of the system when not configured for Mirroring or RAID AMP modes.

Uncorrectable errors are always multi-bit memory errors. The internal Health LED will indicate a critical condition, and on most systems, the LEDs next to the failed DIMMs will be illuminated. In addition, the error will be logged if the Systems Management Driver is loaded. Uncorrectable memory errors can typically be isolated down to a failed Bank of DIMMs, rather than the DIMM itself.


Possible solutions:

Most of the Correctable and Uncorrectable Memory Errors can be solved with a BIOS update. Refer to server’s BIOS release notes for fixes.

Run Insight Diagnostics and replace the faulty part.

If diagnostics is not an option, swap with a known good memory module, to make sure the DIMM slot on the system board or memory board is good.

After swapping with known good part or after performing diagnostics, the faulty part has to be replaced.

'기타' 카테고리의 다른 글

OpenStack  (0) 2013.07.17
RAID + JBOD  (0) 2013.07.04
서비스 무정지 DNS 기관 이전 시 작업순서  (0) 2013.03.28
POC, Pilot, BMT 약어 설명  (0) 2013.02.20
Filezilla (파일질라) Client 관련 오류  (0) 2013.01.29
posted by 은이종 2013. 4. 30. 17:49

1. 설정시 참고 사이트

http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=884888

 

2.. apache, Passenger 연동하기

Passenger 는 Apacche 2.x 확장기능으로 Apache 에서 Rails 나 Rack applicaiton 을 실행할 수 있다.

Puppet (>0.24.6) now ships with a Rack application which can embed a puppetmaster. Puppet (>0.24.6) 은 이제 puppetmaster 를 내장할 수 있는 Rack applicaiton 이 포함되어 있다.

 

(1) passenger 설치 (참고 http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger)

puppetmaster 서버의 puppet.conf 설정에 아래 내용 추가

[puppetmasterd]

ssl_client_header = SSL_CLIENT_S_DN

ssl_client_verify_header = SSL_CLIENT_VERIFY

 

(2) Apache2, Rack and Passenger 설치
yum install httpd httpd-devel ruby-devel rubygems

gem install -v 1.1.0 rack

gem install passenger

설치시 아래와 같이 Error 발생시

yum install ruby-devel 실행 후 update 진행.

추가적으로 apache에 필요한 라이브러리를 설치한다.

yum install curl-devel openssl-devel zlib-devel 


passenger-install-apache2-module


Mod_SSL 설치

yum install mod_ssl

   

설치 후 다음의 내용을 apache 설정에 추가하라고 나온다.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby

 

cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmaster.conf

vi /etc/httpd/conf.d/puppetmaster.conf

/etc/httpd/conf.d/puppetmaster.conf 설정은 해당 모듈을 로딩하도록 하고 문서를 참고하여 몇가지 옵션을 튜닝하였음. 도메인 이름을 puppet master 서버로 설정함.
port 는 puppet 의 기본 포트인 8140 으로 설정을 하였음.

# cat /etc/httpd/conf.d/puppetmaster.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11

PassengerRuby /usr/bin/ruby

# tuning passenger setting

# http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger

PassengerMaxRequests 10000

PassengerPoolIdleTime 300

PassengerMaxPoolSize 15

PassengerUseGlobalQueue on

PassengerHighPerformance on

Listen 8140

<VirtualHost *:8140>

SSLEngine on

SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA

SSLCertificateFile      /var/lib/puppet/ssl/certs/master.jongeun.co.kr.pem

SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/master.jongeun.co.kr.pem

SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem

SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem

# CRL checking should be enabled; if you have problems with Apache complaining about the CRL, disable the next line

SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem

SSLVerifyClient optional

SSLVerifyDepth  1

SSLOptions +StdEnvVars

# The following client headers allow the same configuration to work with Pound.

RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

ServerName master.jongeun.co.kr

ServerAlias master.jongeun.co.kr

RackAutoDetect On

DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/

<Directory /usr/share/puppet/rack/puppetmasterd/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

<Location />

Options None

Order deny,allow

Deny from all

allow from 10.40

</Location>

</VirtualHost>
 

여러개의 도메인을 이용해야 하므로 SSL 설정에서 ServerName, ServerAlias 에 사용할 모든 도메인을 설정해 주어야 한다. 안 그러면 puppet client 에서 접속시 인증서와 관련한 에러가 난다. (certificate verify failed 등의 메시지)

/var/lib/puppet/ssl/ca/ca_crt.pem 파일은 /var/lib/puppet/ssl/certs/ca.pem 으로 설정을 하는 것이 편리하다.

mkdir -p /usr/share/puppet/rack/puppetmasterd

mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp

cp /usr/share/puppet/ext/rack/files/config.ru /usr/share/puppet/rack/puppetmasterd/

chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru

httpd 시작

/etc/init.d/httpd restart

모든 것이 정상작동을 하면 이제 puppetmaster 는 직접 실행을 하지 않아도 된다. puppet client 에서 요청을 하면 httpd 에서 puppetmaster 를 띄운다. httpd 를 내리면 puppetmaster 도 내려간다.

 

 

 

3. Puppet 시스템 구성

Puppet Master server : puppet certs 서버. puppet client 에 대한 인증 기능 수행
Puppet File server : puppet file 배포용
Puppet Reporting server : puppet reporting 용

 

 

 

 

 

24 모듈 설치 방법

Puppet 은 프로세서 내  forge.puppet labs.com의 연결을  통하여, Module을 설치할수 있다.

puppet module list 현재 설치되어있는 리스트 확인

 

3. NTP 설치

puppet module search ntp

forge.puppet labs.com 의 ntp 프로세서가 있는지 확인한다.

puppet module install puppetlabs-ntp

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설치 및 기본설정  (2) 2013.04.16
posted by 은이종 2013. 4. 16. 18:28

1. 배경

Puppet은 아래의 그림 처럼 하나의 Master 서버에서 설정(아파치 설정, WAS 기동 등..)을
하면 각 Agent에게 설정 정보를 보냅니다. (이러한 명령을 "catalog" 라고 합니다.)
수신된한 Agent는 변경된 설정 정보를 실행하고, 결과 리포트는 Master에게
전송 합니다.

Puppet의 특징

- GPL 기반 오픈 소스이며, Ruby에서 할 수있다
(Ent버전 유료과 오픈 버전이 있습니다.) 
- 자신의 선언적 언어로 시스템을 관리 -> 고유 언어 시스템으로 작성된 파일을 "매니페스트"라고 합니다.
- 클라이언트 / 서버 아키텍처
- 추상화 레이어 -> 여러 OS가 혼합된 환경에서도 OS의 차이를 의식하지 않고, 단일 매니페스트에서 시스템을 관리 할 수 있게 된다.
- 종속성 처리
- LDAP 지원

자원 : 사용자, 파일, 소프트웨어 등의 Puppet 관리 대상
매니페스트 만들기 첫 걸음은 자원을 선언하는 것

file (파일)
user (사용자)
group (그룹)
host (호스트)
package (소프트웨어 패키지)
service (실행중인 서비스)
그외 다양함

Puppet의 기본 동작은 puppetd가 30 분에 1 회 puppetmasterd에 매니페스트를 가져 가고, 자신에 매니페스트를 적용합니다. 
이 경우 puppetd이 puppetmasterd에 액세스 할 타이밍을 제어하는 것이 어렵 기 때문에 다음과 같은 문제가 있습니다.
- Puppet 클라이언트가 수백 대 혹은 그 이상의 규모가 된 경우 Puppet 서버에 대한 액세스가 동 시간대에 집중 될 수있다
- 새로운 명단을 우선 하나만 적용하여 테스트 해보고 싶다,라고하더라도 모든 서버에 마음대로 적용되어 버릴 우려가있다
이 문제를 해결하기 위해서는 puppetrun을 이용해 Puppet을 운영해야합니다.


템플릿 기능은 Puppet 클라이언트의 조건에 따라 내용이 다른 파일을 클라이언트마다 만들수 있습니다.
puppetrun의 일부 옵션(-all-class)이 LDAP에서 노드 관리하지 않으면 사용할 수 없다는 점이 있습니다.
Puppet의 설정 및 데이터 파일 (매니페스트 템플릿 배포 파일, 모듈 등)을 Subversion에서 관리하여,
누가 어떻게 변화를했는지 기록도 남아 있기 때문에, 변경 추적 및 감사 변경을 롤백 할 수 있습니다.

-기타 주의 사항-
1CPU/2GB 메모리 Puppet Master 서버 1대에서 50~100 대의 Puppet 클라이언트를 관리하는 것이 한계

단일 구성의 향상
Puppet에서는 웹 서버로, Ruby 표준에 포함되어있는 WEBrick을 사용하므로, Mongrel으로 대체할 수 있는데, Mongrel의 경우 SSL 처리가 안되므로,리버스 프록시 구성으로 Apache + mod_ssl + mod_proxy 와 같이 구성하면 됩니다.
Nginx를 사용하는 것도 한 방안임.
SSL 인증서를 사용할 경우, 키 인증과 관련한 구성상의 문제점이 있으므로 상세한 확인이 필요한다.

[출처] puppet 요약|작성자 


 2. 설치 환경

  • OS

     테스트 설치 환경은 "CentOS 6.4 x32" 입니다. 

  • Ruby

     Puppet은 Ruby로 만들었기 때문에 반드시 Ruby를 반드시 설치해야 합니다.

     1.9.x 버전이 OpenSSL과 연동시 이슈가 있었습니다. 
     그래서 현 시점에서는 1.8.x 버전을 설치 하시길 권고 드립니다.

  • 서버 구성

     서버는 Master 1 대, Agent 1대 총 2대로 진행 하며, Puppet은 Master <-> Agent 간에
     SSL 통신을 하기 때문에 도메인이 필요 합니다.

     하지만 이번 설치에는 /etc/hosts 파일에 설정을 하면서 진행 했습니다.
     Master 도메인 : master.jongeun.co.kr
     Agent 도메인 : client1.jongeun.co.kr


3. Master 설치 하기

Yum 설치로 진행을 하였습니다. 기본 CentOS repo로는 설치가 안되므로,
sourceforge 의 Repo를 연결하여 진행합니다.

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

rpm -Uvh rpmforge-release-0.5.1-1.el5.rf.i386.rpm


  (1) 루비 및 관련 라이브러리 설치

     ※ruby와 관련 라이브러리들을 설치 합니다.
     # yum install ruby ruby-libs ruby-shadow


   (2) Puppet Master 설치

     Puppet을 설치하려면 3가지 패키지를 설치해 해야 합니다.

  • puppet : Agent 모듈
  • puppet-server : Master 모듈
  • facter : 서버 정보를 gathering 하는 모듈

     # yum install puppet puppet-server facter

 

4. Agent 설치 하기

     Master 설치하기 와 동일하고 3번 설치 항목에서 2개만 설치 합니다.

  1. Puppet Agent 설치 하기

     # yum install puppet facter


5. Master 설정 하기

 vi /etc/puppet/puppet.conf

          [master]

          certname=master.jongeun.co.kr

"cetname"은 master 도메인 정보를 설정하는 속성입니다. 추후에 이 도메인명을 가지고 SSL 인증서를 발급 합니다.

추가로 conf에 "[main]"은 공통 설정,  "[master]"는 master 전용 설정, 마지막으로  "[agent]"는 agent를 위한 설정 입니다. 

Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT
 


6. Agent 설정 하기

  vi /etc/puppet/puppet.conf

  [agent]
  certname=client1.jongeun.co.kr

 Agent의 도메인 정보를 입력 합니다. 추후에 서버에서 SSL 인증서를 발급 받습니다.

  • 만약 master 도메인이 퍼블릭 도메인이 아닌 경우는 "/etc/hosts" 파일에 도메인 정보를 추가 합니다.

          192.168.0.1 master.jongeun.co.kr
 
 
Puppet은 TCP 8140을 사용하기에 Iptable에서 허용해줘야합니다. 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8140 -j ACCEPT



7. Master to Agent 연동 하기  

     Master 와 각 Agent는 SSL 통신을 합니다. Master 입장에서는 승인된 Agent정보가 필요하며,
     반대로 Agent도 승인된 Master가 필요 합니다. 즉 쌍뱡향 SSL 승인절차를 필요 합니다.
     서로 같에 SSL 승인이 되지 않으면 연동 자체가 불가 합니다.
     Puppet 같은 경우는 자체 CA (certificate authority) 인증 기관이 있고,  SSL 인증을 최적화
     되어 있습니다.
     그래서 공인인증 수준의 SSL 인증 발급을 쉽게 할수 있도록 지원을 합니다. 
     Puppet은 큰 특징 중 하나가 바로 SSL 인증 발급을 하는 것입니다.
     또한 Customize 할수 있는 기능도 제공 합니다.

     인증서 발급 FLOW는 아래와 같습니다.



     (1) Master 서버가 기동을 해서 Agent를 리스닝 합니다.

     (2) Agent는 서버에 접속을 합니다.
     (3) Master는 Agent의 도메인 정보를 얻은 후 SSL을 발급 합니다.
     (4) 발급된 ".pem" 파일을 Agent에 전송 합니다.

     (5) Agent는 "/etc/puppet/ssl" 폴더에 서버 와 본인 인증서를 저장 합니다.
     (6) 이후 부터는 인증서를 통해서 ssl 통신을 합니다.


 <<Master > 
 
puppet master --no-daemonize -d -v

-no-daemonize : puppet을 데몬이 아닌 foreground로 실행하는 옵션

-debug : debug 모드로 실행

-verbose: verbose 모드로 실행




<<Agent >

 
puppet agent --server master.jongeun.co.kr --no-daemonize --verbose




  • << Master >>

    puppet cert --all and --list
     
     
    "+" 표기된 부분은 발급이 완료된 Agent들을 말합니다. 지금 접속한 "node1.example.com"은 "+" 표시가 되어 있지 않습니다.  즉, 서버에 접속은 되어 있지만 발급이 안되서 대기중인 상태를 말합니다.


          puppet cert --sign client1.jongeun.co.kr
       
clien1.jongeun.co.kr 로 접속한 Agent에게 SSL 인증서를 발급 하겠다는 내용 입니다.



  • <<Agent >>
    발급이 완료되면 Master로 부터 새로운 catalog(설정 변경에 대한 지시 사항)을 받습니다.
    puppet agent --server master.jongeun.co.kr --no-daemonize --verbose





  • 최종적으로 아래와 같이 Master/Agent 로그가 나오면 정상적으로 설정이 완료 됩니다.

          추후 Agent가 추가가 되면 위에 설정 방식을 반복해서 설정을 하면 됩니다.

<<Master Side>>

<<Agent Side>>

     다음에 간단하게 Master에 있는 파일을 다운로드 받아서 Agent 특정 위치로 복사하는 예제를
     올리도록 하겠습니다.

8. 참고 자료

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설정 (수정 중)  (0) 2013.04.30
posted by 은이종 2013. 4. 11. 17:46

1. Active Directory 란 ?

Active Diretory(이하 AD)란  디렉토리 서비스이다. 디렉토리 서비스는 네트워크 리소스(사용자 및 컴퓨터, 그룹 등)와 같은 데이터를 저장하고, 네트워크 상에서 필요할 때마다 정보를 검색할 수 있게 해주는 서비스이다.

AD는 네트워트상의 모든 리소스에 관한 정보를 논리적 계층 구조로 저장하여 클라이언트들이 인증을 통해서 언제 어디서라도 그 리소스에 액세스 할 수 있게 해 준다.

① DNS와 통합

AD는 DNS(Domain Name System)를 사용한다. 계정에 대한 정보 등 DNS계정을 통하여 관리 진행이 된다.

② 확장성

관리자가 새로운 클래스를 스키마에 추가 하거나 기존의 크래스에 새로운 속성을 추가 할 수 있다. 스키마는 디렉토리에 저장할 수 있는 각 개체 클래스의 정의와 클래스의 속성을 말한다.

③ 정책을 기반으로 하는 관리

그룹 정책은 사용자나 컴퓨터가 처음 초기화될 때 적용되는 환경 설정이며 그룹 정책 개체(GPO)에 저장하며, GPO에는 디렉토리 개체와 도메인 자원에 접근할 때 적용되는 모든 권한이 설정되어 있다.

④ 정보 보안

AD의 보안 기능은 사용자 인증과 접근 권한 제어이며. 사용자 인증은 중앙에서 관리 하며 접근 권한 제어는 AD의 각 개체뿐 아니라 각 속성에서도 정의가 가능하다.

2. AD 설치 (DC서버 설치)

보통 DC는 DC1서버, DC2서버로 구성한다. (Active-Active)

DC1,2 서버에 AD서비스를 설치한다.

(1)  DC1번 서버에 AD도메인 서비스  서버 역할 추가.

실행창에 "dcpromo"를 입력하여 Active Directory 도메인 설치 마법사를 시작

2. 기존 포리스트에 추가하는 방법과 새 포리스트에 새 도메인을 만들 수 있습니다.

DC1에서는 새 포트리스에 새 도메인 만들기로 설치합니다.

추후 설치될 DC2에서는 기존 포트리스로 설치진행합니다. 자세한 부분은 밑에서 다시 설명하겠습니다.

4. 도메인 이름을 지정합니다.

5. 포리스트 기능 수준을 설정합니다. 사용하는 환경에 맞게 선택해 주시고 [다음]을 클릭합니다.

(제가 설치 진행 OS버전은 W2K8 R2 STD 입니다.)

6. 도메인 기능 수준을 설정합니다. 사용하시는 환경에 맞게 선택해 주시면 될 것 같습니다. [다음]을 클릭합니다.

7. 첫 번째 도메인 컨트롤러일 경우에는 DNS 서버 설치를 권장합니다. [다음]을 클릭하여 DNS 서버를 설치합니다.

주의점으로 DNS가 설치가되는 DC1는 TCP/IP 구성에서 반드시 자기 자신에게 DNS IP 구성을 설정해 주시기 바랍니다.

추가될 DC2번 IP도 미리 할당해 놓으면, 더 편하겠죠?


8. Active Directory 데이터베이스 저장경로를 지정합니다. 디폴트 설정으로 놓고 ㄱㄱ

9. 디렉터리 서비스 복원 모드 관리자 암호를 설정합니다.

10. 설정을 확인한 후 [다음]을 클릭합니다.

11. 서비스를 구성중입니다. 서버 스펙이 따라 차이가 있는데 보통 10~30여분정도 소요됩니다.

12. 설치가 완료되었습니다.

3. DC2 구성

DC를 이중화하여 구성하겠습니다.

시작하기에 앞서서 기본 DNS주소를 DC의 IP주소로 셋팅해 줍니다.

기존의 DC에서 이미 DNS서비스가 실행되고 있으므로 DNS서버의 주소를 DC의 주소로 셋팅하는 과정입니다.

차후 멤버서버가 도메인에 가입을 할 때에도 반드시 선행되어야 하는 과정입니다.

(이 과정을 거치지 않으면 설정 중간에 DC를 찾지못해 오류가 발생합니다.)

당연히 각 서버들과 통신이 잘되고 있는지 핑테스트를 합니다.

cmd 창에서 dcpromo를 입력한 후 마법사가 시작되면

'고급 모드 설치 사용'에 체크하고 다음으로 넘어갑니다.

두번째 DC도 DNS서버의 역할을 수행해야 하므로 체크박스에 체크를 하고 다음으로 넘어갑니다.

이 부분이 중요한 부분입니다.

'새 포리스트에 새 도메인 만들기'가 아닌

'기존 포리스트'-'기존 도메인에 도메인 컨트롤러 추가'를 선택하고 다음으로 넘어갑니다.

기존 도메인에 DC가 있는데 추가로 하나의 DC를 더 생성하는 과정이기 때문에 위와같은 단계를 거치게 됩니다.

'기존 포리스트에 새 도메인 만들기'의 경우는

지금은 하나의 포리스트에 하나의 도메인만 생성하지만

도메인을 여러개 만들고 싶을때 선택합니다

기존에 구성되었던 포리스트의 도메인 이름을 입력하면 됩니다.

이전 포스트에서 도메인 이름을 'lee'로 지정하였으므로, 해당 도메인 이름을 입력합니다.

또한 '현재 로그온되어 있는 자격증명'이 아닌

'대체 자격 증명'을 선택한 후 설정을 클릭합니다.

그러면 위와같은 인증화면이 나오는데

기존 도메인(lee)의 관리자 계정정보를 입력합니다.

정상적으로 입력을 하였다면 위와같이 기존에 생성되었던 도메인이 보여집니다.

하나밖에 나오지 않으므로 다음을 클릭합니다.

추가 옵션에 대한 선택화면입니다. 위와같이 설정한 후 다음으로 넘어갑니다.

지금부터는 기존 DC를 구성할때와 똑같이 진행됩니다.

'예'를 선택하고 넘어갑니다.

기존 DC의 데이터와 똑같은 데이터를 가지고 있어야 합니다.

네트워크로 연결이 되어있으므로

'네트워크를 통해 기존 도메인 컨트롤러에서 데이터복제'를 선택하고 다음으로 넘어갑니다.

어떤 도메인 컨트롤러에서 정보를 가져올 지 선택합니다.

현재 네트워크에는 DC가 한대밖에 존재하지 않으므로 하나만 나타납니다.

선택하고 다음으로 넘어갑니다.

각종 설정파일의 보관위치 설정입니다.

마지막으로 설정한 내용에 대한 요약화면이 나오고

다음을 누르면 DC구성이 시작됩니다.

완료 후 재부팅이 시작됩니다.

주 DNS주소는 기존 DC의 주소인 10.10.10.10

보조 DNS주소는 두번째 DC,즉 방금 구성한 서버의 주소인 10.10.10.11 ( 혹은 127.0.0.1 ) 을 넣어줍니다.

이렇게 되면 두번째 DC의 설정도 완료됩니다.

4. AD를 구성하는 각 서버들의 AD클라이언트 설정

도메인 조인을 합니다. 여전히 재 부팅은 필요하네요..

'Windows > AD' 카테고리의 다른 글

AD 계정별 Policy 설정  (0) 2014.07.23
AD 그룹 정책 관리  (0) 2014.04.18
AD 장애  (0) 2014.01.17
AD join시 Open Port  (0) 2014.01.06
AD 설정 1. 계정 2.로그인 대상  (0) 2013.08.28
posted by 은이종 2013. 4. 9. 12:29

FTP는 하위 디렉토리는 전송이 되지 않는다.

그러므로 압축해서 전송을해야하는데, Linux는 간단히 tar로 압축해야하지만.

Windows는 CMD명령어를 지원하는 압축프로그램을 사용해야 한다.

7zip 압축프로그램을 이용하여 압축하고 전송한다.

 

1개의 FTP정보을 넣은 텍스트 파일과 실제로 실행되는 배치파일로 스크립트를 만든다.

 

tp.txt

open 111.111.111.111

jongeun

메롱메롱
prompt
type binary
mput *
bye


연결할 FTP서버의 IP, 계정, 패스워드를 기입하면 된다.


 

Backup.bat

@echo off

set DS=%DATE%

C:\7-Zip\7z.exe a -tzip D:\Backup\mysqldata-%DS%.zip "C:\Program Files\MySQL\MySQL Server 5.5\data\" >> D:\Backuplog\mysqldata-%DS%.log


copy D:\bbj_db_data\ibdata1 D:\Backup\ibdata1-%DS% >> D:\Backuplog\ibdata1-%DS%.log


echo ===== FTP Transfer Start =====

cd \
d:
cd D:\Backup

ftp -s:D:\ftp.txt

echo ===== FTP Transfer End ======


echo ===== Backup File Delete =====

forfiles /p D:\Backup\ /d -1 /c "cmd /c del @file"

posted by 은이종 2013. 4. 5. 17:32
1. MS-SQL 접속 후 Query

Select @@version
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')  

2. Log 파일 확인

c:\Program Files\Microsoft SQL Server\MSSQL.
n\MSSQL\LOG 폴더에서
ERRORLOG 및 ERRORLOG.
n 파일에 열어보면 첫줄에 확인 된다.

보통 MS-SQL설치시 다른경로에 DATA는 설치하므로, 염두하고 확인하면 된다.

 
 

'Windows > MS SQL' 카테고리의 다른 글

[ISMS][MS-SQL] PATCH 이력 확인  (0) 2023.06.30
posted by 은이종 2013. 4. 4. 18:08

0. 개요

python 기반의 툴로

log파일을 읽어 일정시간 차단을 어플로, ssh ftp 등 무작위 로그인을 통한 brute force attack에 대응하기 위한 좋은 어플이다.

iptables , tcpwrapper 등에 해당 host 를 직접 등록하여, 직관적인 차단이 가능하다.

 

1 .설치 과정

공홈 : http://www.fail2ban.org

CentOS 에 yum으로 설치 하려면

vi /etc/yum.repos.d/CentOS-Base.repo

에 아래 글 추가

[dag]
name=Dag RPM Repostory for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/

 

2. 설치 과정

yum install fail2ban

설치경로는  /etc/fail2ban 이다.

 

3. 설정

설정파일은 /etc/fail2ban/jail.conf

[DEFAULT]

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# "bantime" is the number of seconds that a host is banned.
bantime  = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

 

ignoreip : 무시할 IP주소 (여기에 입력한 IP는 차단 하지 않음) CIDR Mask, DNS, IP를 입력가능

              공백을 이용하여 여러개 입력 가능

bantime : 해킹시도가 감지되었을 때 해당 IP를 차단할 차단기간 (기본값 : 600, 단위 : 초)

findtime : 로그에서 검색할 시간 (기본값 : 600, 단위 : 초)

maxretry : 일정시간동안 해킹시도 횟수

backend : 로그 파일 변경을 감지할 방법 (gamin, polling, auto)

               gamin : Gamin(file alteration monitor)설치된 경우 사용가능

               polling : 주기적으로 점검

               auto : Gamin이 설치된 경우 gamin사용, 아니면 polling 사용

설정파일에서 이메일 주소 변경

:%s/you@mail.com/내메일주소

:%s/fail2ban@mail.com/보내는사람 메일 주소

 

# This jail corresponds to the standard configuration in Fail2ban 0.6.
# The mail-whois action send a notification e-mail with a whois request
# in the body.

[ssh-iptables]

enabled  = false
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@example.com, sender=fail2ban@example.com]
logpath  = /var/log/sshd.log
maxretry = 5

[proftpd-iptables]

enabled  = false
filter   = proftpd
action   = iptables[name=ProFTPD, port=ftp, protocol=tcp]
           sendmail-whois[name=ProFTPD, dest=you@example.com]
logpath  = /var/log/proftpd/proftpd.log
maxretry = 6

# This jail forces the backend to "polling".

[sasl-iptables]

enabled  = false
filter   = sasl
backend  = polling
action   = iptables[name=sasl, port=smtp, protocol=tcp]
           sendmail-whois[name=sasl, dest=you@example.com]
logpath  = /var/log/mail.log

실제 적용해야 할 서비스 목록입니다. 가장 중요한 부분이겠죠?

해당 원하는 서비스를 확인후에 enabled = false를 true로 변경하시면 됩니다.

 

변경된 설정을 적용시켜주시고, 재부팅후에도 fail2ban이 실행되게 chkconfig에 등록합니다.

service fail2ban start

chkconfig –levels 235 fail2ban on

 

 

추가 설정

1. devecot-pop3설정

# sudo vi /etc/fail2ban/filter.d/dovecot-pop3imap.conf  <- 파일 추가
[Definition]
failregex = (?: pop3-login|imap-login): (?:Authentication failure|Aborted login \(auth failed|Disconnected \(auth failed).*rip=(?P<host>\S*),.*
ignoreregex =
# sudo vi /etc/fail2bain/jail.conf   <- 아래 내용 추가
[dovecot-pop3imap]
enabled = true
filter = dovecot-pop3imap
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,imap", protocol=tcp]
logpath = /var/log/maillog
maxretry = 20
findtime = 1200
bantime = 1200
# sudo /etc/init.d/fail2ban restart   <- 서비스 재시작

 

Proftpd 필터 사용시 proftpd 설정에 따라 로그를 검사하지 못하는 경우가 생긴다. /etc/fail2ban/filter.d/proftpd.conf 파일을 아래와 같이 변경 (진한 부분을 추가)

failregex = (S+[<HOST>])[: -]+ USER S+: no such user found from S+ [S+] to S+:S+$
            (S+[<HOST>])[: -]+ USER S+ (Login failed): Incorrect password.$
            (S+[<HOST>])[: -]+ SECURITY VIOLATION: S+ login attempted.$
            (S+[<HOST>])[: -]+ Maximum login attempts (d+) exceeded$ 
USER S+: no such user found from S* [<HOST>] to S+s*$
          ^<HOST> .* nobody .*PASS .* 530

posted by 은이종 2013. 3. 28. 17:18

A. 작업 사전 설명

jongeun.co.kr (서버 IP 1.1.1.1)이란 도메인이  KT DNS를 사용 중(DNS IP 168.126.63.1)

jongeun.co.kr은 도메인클럽에서 구매하여 관리

KT 에서 SK(58.227.193.227)로 서버 이전(서버 IP 110.45.229.135 로 변경됨)은  및 DNS을 이전 하려 한다.

 

B. 작업 진행

1. SK DNS에 사용 중인 도메인(jongeun.co.kr 1.1.1.1)을  등록해놓는다

등록과정에서 TTL값은 최소한으로 줄여서, 빠른 전파가 되게 설정

 

2.SK DNS에 정상적으로 등록되었는지 Query 확인

dig @58.227.193.227 jongeun.co.kr

 

3. 도메인클럽(도메인 구입처)에서 도메인 설정에서 DNS서버 설정을 KT DNS에서 SK DNS로 변경한다

 

* 실제 서버 이전 전에 미리 변경해둬야  이전 작업 시 변경작업이 용이하다

  이 작업 이후로는 KT DNS쪽은 신경 안 써도 된다.

 

4. 이전 작업 (서버 IP변경)

 

5. SK DNS에서 신규 변경한 IP로 변경

 
6. 이전 후 쿼리 확인 

메일 관련 확인 (DNS 이전시 가장 문제가 많다.)


(1) type=mx  MX레코드 확인
(mx레코드 등록시.. 서브 도메인보다 아래에 있을경우<특히www> 제대로 Query가 이뤄지지 않을 수 있다.
 항상 A레코드 위에 등록하는 버릇!!)

> set type=mx

> xxx.co.kr

서버:    ns1.xxx.co.kr

Address:  211.206.124.xx

xxx.co.kr     MX preference = 10, mail exchanger = xxx.xxxx.co.kr


(2) type=txt  SPF등록 확인

  xxx.co.kr     text =

        "v=spf1 ip4:xxx.xxx.xxx.xxx ~all"


(3)type=ptr  리버스 도메인 확인
 조회 IP를 넣을때 ip를 거꾸로 넣어야한다.
 1.2.3.4 란 IP면
 4.3.2.1.in-addr.arpa

4.3.2.1.in-addr.arpa    name = xxx.xxx.xxx.xxxx


(2) 화이트도메인 확인
Kisarbl.or.kr 
 

(3) 스팸으로 등록되어있는지 확인
http://www.spamhaus.org

 (4) http://www.dnsstuff.com/tools 통하여 빠진 부분이 없는지 최종 확인


'기타' 카테고리의 다른 글

RAID + JBOD  (0) 2013.07.04
Correctable or Uncorrectable Memory (DIMM) Errors  (0) 2013.05.02
POC, Pilot, BMT 약어 설명  (0) 2013.02.20
Filezilla (파일질라) Client 관련 오류  (0) 2013.01.29
Raid Stripe  (0) 2013.01.17
posted by 은이종 2013. 3. 11. 12:20

1. 서비스 확인



Oracle TNSListener, OracleService

2개의 서비스가 실행되어있는지 확인한다.

참고로) Oracle MTSRecoveryService 는 MTS (Microsft Tracaction Server)를 사용하지 않으면, 사용할 필요는 없다.

 

2. 리스너 정상 작동 확인

가.  리스너 프로세서 실행 확인

tasklist | find "TNSLSNR.EXE"

 

나 .리스너 연결 확인


 

다 tnsping 을 이용한 오라클 연결 확인

tns 명 확인

oracle 각 버전의 설치 경로 확인

C:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

tnsnames.ora

를 열면

“SERVICE_NAME =”에서 확인 가능

tnsping service_name

'Backup & Restore' 카테고리의 다른 글

Acronis11 복원  (0) 2013.01.10
posted by 은이종 2013. 2. 25. 17:39

윈도우즈 FTP 전송시, 디렉토리를 포함하여 전송할 수 없다…

Linux 면 tar로 압축할텐데,  Windows2000 이나 2003은 별도의, 프로그램이 필요하다

 

가장 많이 사용하는 압축프로그램으로

알집, 7zip, 반디집 등이 있는데

그 중 국산 무료웨어 프로그램인 반디집을 이용하여 진행한다.

참고로 반디집은 EGG, tar, zip 등 현재 자주 사용하는  규격의 풀기가 가능함

 

http://apps.bandisoft.com/bandizip/
설치형과 포터블이 있으니 상황에 맞춰 다운로드

'Windows' 카테고리의 다른 글

윈도우 CMD에 hostname 표시  (0) 2013.09.26
Windows FTP Script  (0) 2013.04.09
Windows Network error 확인 방법  (0) 2013.01.24
Windows Dump (Widbg, BlueScreenView)  (0) 2013.01.21
Windows 무인설치 (Windows Updates downloader * nlite)  (0) 2012.12.26
posted by 은이종 2013. 2. 24. 09:59


http://www.ppomppu.co.kr/zboard/view.php?id=etc_info&page=1&sn1=&divpage=4&sn=off&ss=off&sc=off&select_arrange=headnum&search_type=&desc=asc&no=22561


http://www.ppomppu.co.kr/zboard/view.php?id=free_picture&page=1&sn1=&divpage=17&sn=off&ss=off&sc=off&keyword=%BA%CE%BB%EA%20%BF%A9%C7%E0%B1%E2&select_arrange=headnum&search_type=subject&desc=asc&no=89496


https://www.facebook.com/ppombu


부산여행시 참고 링크

 

'여행 및 냠냠' 카테고리의 다른 글

<태평역> 2014년 10월 10일 산홍 숯불 꼼장어  (0) 2014.10.11
<은행동> 이윤곱창  (0) 2012.04.21
<교대역> 이맛콩나물해장국  (0) 2010.07.17
<강남역> 악바리  (0) 2010.07.17
<강남역> 크레이지 후크  (1) 2010.07.17
posted by 은이종 2013. 2. 20. 19:10


POC, Pilot, BMT 이 세가지에 대한 IT업계에서 통용되는 의미에 대해 정리를 해 봤습니다.

물론, 약간의 이견과 분야별로 다르게 해석될 수 있으나, 최대한 공통적인, 일반화된 의미로 해석해봤습니다.

1. POC (Proof Of Concept)
기존에 시장에서 사용돼지 않던, 신기술을 프로젝트에 도입하기에 앞서, 검증하기 위한 목적으로 사용.
사업과 관계가 약간은 동떨어진 기술 검토를 위한 프로젝트고객사에서 하고, 업무는 아주 간단한 것을 수반. 신기술 여부는 중요치 않음

2. Pilot
이미 검증된 기술을 가지고, 대규모 프로젝트 진행에 앞서 소규모로 진행해보는 시험 프로젝트를 말함.
본사업(프로젝트) 진행을 위한 수행안 검증 프로젝트로 가령 기술셋을 확정했으면 그 기술셋으로 실제 업무에 적용해보고 문제점이나 개선안을 마련해서 본 프로젝트에 피드백 주는 것
(계획, 기술문제, 관리요소, 위험요소, 비용 이런 것을 피드백하는 용도, 당초 기대한 효과에 비해 결과가 너무 미미하거나 비용이 많이 들면 취소)

3. BMT(Bench Marking Test)
말그대로 성능테스트입니다. 
예를 들면 00발주처에서 테라바이트 라우터를 도입한다고 할때, 입찰에 응한 업체들의 제품에 대해서 성능비교를 하는 겁니다.
필요에 의해 이것 저것 골라다가 테스트해보고 비교하는 것. 장비 뿐만이 아니라 소프트웨어(솔루션)도 포함되구요.
(대부분은 수평적으로 기술셋 비교에 대한 내용이 많지만 업무적 특성을 포괄하는 솔루션인가? 이러한 요건이면 업무도 물론 수반)

'기타' 카테고리의 다른 글

RAID + JBOD  (0) 2013.07.04
Correctable or Uncorrectable Memory (DIMM) Errors  (0) 2013.05.02
서비스 무정지 DNS 기관 이전 시 작업순서  (0) 2013.03.28
Filezilla (파일질라) Client 관련 오류  (0) 2013.01.29
Raid Stripe  (0) 2013.01.17