태그 Archives: Linux

CentOS 7 에 azcopy 설치

CentOS 7 에 azcopy 를 설치 하여 Azure Blob 스토리지를 이용한다.
Azure Blob 스토리지는 AWS S3 스토리지 와 개념이 같은 비정형 스토리지 이고, 속도가 만족스럽지 않지만 GB 당 월 0.1$ 라는 저렴한 가격으로 사용이 가능하다.

— 물론 AWS Glacier 는 더 싸다 ‘ㅅ’a — 다만 테이프백업 복구가 4~5시간의 Retrieval 이 있기 때문에 1차 백업 용으로 좋지 않음. —

$0.025/GB – AWS S3
$0.02/GB – Azure BLOB
$0.005/GB – AWS Glacier

데이터 input 시에는 과금이 되지 않기 때문에 서버 백업을 적재 하는 용도로 매우 좋다 🙂

 

먼저 yum 레포지토리를 설치한다.

 

yum 을 이용하여 dotnet 을 설치한다.

azcopy가 7.2 버전으로 업데이트 되면서 dotnet 을 설치할 필요가 없어 졌다. ( yum을 이용한 libunwind libicu 만 설치 한다. )

 

azcopy 를 설치한다.

 

정상적인 설치가 된경우 azcopy 명령어를 입력할 경우 아래와 같이 나온다.

 

간단한 파일 업로드 사용 방법은 다음과 같다.

다운로드는 다음과 같다.

백업스크립트를 만들어서 사용할 경우 quiet 옵션을 사용 한다.

swap 파티션 잡는법.

발생 사유는 잘 모르겠지만.

top 명령으로 서버 자원을 보았을때.

위와 같이 Swap:        0k total,        0k used,        0k free,        0k cached 으로 스왑이

잡혀 있지 않는 경우가 발생하였다 ‘ㅅ’aaa

 

리부팅 해도 변함없이 0으로 잡혀 있을때 아래와 같이 스왑 파티션을 잡아주면 된다.

 

위의 명령으로 안된다면 파티션이 swap 으로 잡혀 있지 않거나 파티션 초기화가 안되었을 수 있다.

파티션은 fdsik 를 이용해서 잡고 swap 파티션 초기화는 아래 명령을 이용하여 재시도 한다.

 

 

xcache 설치

모든 컴퓨터의 병목현상은 IO가 주원인이다.

발전속도가 가장 더디고. cpu / gpu / ram 의 속도는 나날이 높아져 가지만 IO의 성능은 거의

제자리 이다.(용량만 늘고 있다. hdd -> ssd 의 진화는 혁명적이긴 했다.)

또한 쉽게 dirty 상태에 빠지는게 IO 이기 때문에 IO 튜닝은 서버의 전반적인 속도향상에 크게 기여한다.

 

APM 서버에서 IO사용을 비약적으로 줄이기 위해서는 캐슁을 하면 되겠다.

xcache , APC 혹은 php 5.5 이상 포함된 opcache 가 대안이라고 볼수 있는데 일반적으로 zend 와의 충돌 때문에

xcache 를 사용하는편이 좋다. APC 역시 충분히 좋았지만.

APC의 경우 메모리 사용량이 xcache 보다 높았다.

그리고 APC 의 경우 문제시 되는 웹프로그램 좀더 많았다.(cake, moodle, kims-board 등)

 

공식 홈페이지 http://xcache.lighttpd.net

1. 설치방법.

–with-php-config 는 php-config 파일의 위치를 지정한다  일반적어도 안넣어도 되는 옵션 ‘ㅅ’a 혹은 버전에 따라 위치 변경이 되어야 하겠다.

여기서 /usr/local 에 직접 설치를 한이유는 xcache 의 관리자 페이지인 Cacher 를 사용하시 위해서이다.

 

2. php.ini 설정추가.

추가 항목중 xcache.size, xcache.count 은 적절히 수정해 주어야 한다.

일반적으로 xcache.count 는 cpu 코어 갯수로 지정한다. xcache.size 는 캐셔 관리자에서 사용량을 체크하여 변경한다.

메모리는 일반적이면 32~64MB 정도면 충분하나 한개의 사이트를 위한 설정이 아니기 때문에 넉넉히 잡았다.

단하나의 사이트를 위해서라면 64M ~ 128M 으로 xcache.gc_interval, xcache.ttl 을 0으로 해서 쓰면 성능이 가장 좋겠다.

 

관리자 설정을 할때(xcache.admin.user, xcache.admin.pass) 패스워드 생성은 간단한 php 코드로 생성할 수 있다.

 

3. 그리고 마지막으로 웹에서 관리자 페이지 접속을 위해 httpd.conf 파일에 아래 코드를 추가 했다.

 

4. 트러블슈팅

1) xcache 는 apache prefork 에서만 동작한다.

 

2) xcache 모듈 로드후 정상적으로 로드가 되지 않는다면 ( 메세지 // xcache.so: cannot open shared object file: No such file or directory )

php.ini 에서 extension_dir=”./” 부분을 주석 처리하거나 php API 에 따른 디렉토리 를 지정해주면 된다.

php API 에 따른 익스텐션 디렉토리는 make install 를 하면 어디에 복사했는지 보여준다 ‘ㅅ’a

 

3) php 5.2 대버전은 php 컴파일시 버그로 NTS 모드로 설치가 되지 않으며 TS 모드로만 설치가 된다.

NTS모드가 아닐경우 php 5.2 에서 에러메세지 표현이 되지 않으나 설치 후 모듈로드를 했을때 아파치가

프로세스는 떠있어 도 웹서버 기능을 제대로 수행하지 못했다.

아래 링크 글로 php 5.2 의 NTS 모드 설치를 진행후 해야 한다.

http://www.enteroa.com/2014/09/24/php-5-2-17-nts모드로-설치

 

4) xcache 는 기본적으로 최신버전이 하위버전의 모든 것을 대응하도록 포함 되므로 최신버전을 쓰는게 좋겠다.

다만 예외사항으로 php 4 는 1.2.2 대의 버전을 써야 하며 extension=xcache.so 가 아닌 zend_extension=xcache.so 으로 불러와야 한다.

아울러서 zend optimizer 보다 먼저 모듈로드가 되어야 하니 주의 하자.

또한 구버전의 관리자 디렉토리는 htdocs 안에 캐셔가 아닌 admin 폴더로 제공된다. httpd.conf 를 아래와 같이 수정하자.

php4 용 xcache 는 파일변경 여부 체크가 존재 하지 않기 때문에 캐쉬된 데이터가 지워지는 시간 동안

웹에서 호출시 신규로 올린 부분의 갱신이 늦어질수도 있다.

(이말은 완성된 홈페이지 가속 용도로만 쓰라는 소리이다 =ㅅ=a 수정된 파일의 즉시반영이 안됨)

 

shellshock 취약점 패치

명령어 실행으로 테스트를 진행한다.

 

 

위와 같이 나온다면 shellshock 취약 하다고 나오면 update가 필요 하겠다 ‘ㅅ’a

 

 

설치 완료후 재 테스트를 하자 ‘ㅅ’a

 

 

CentOS 4 에서는 yum update가 안될것이다 ‘ㅅ’a (OS 버전 확인 ~]# cat /etc/redhat-release )

아래 오라클 사이트에서 배포하는걸 받아서 rpm 명령어로 설치한댜 ‘ㅅ’a
32비트

 

64비트

 

xtables-addons 설치 (GeoIP-iptables, CentOS6)

CENTOS 6 이상
=> xtables-addons 의 요구사항이 iptables 1.4.3 이상 커널-devel 2.6.32 이상임

설치된 리눅스 버전 확인을 하자.!

 

 

http://pkgs.repoforge.org/rpmforge-release 에서 CentOS 6 x64 비공식 Repository 를 추가한다.
위 사이트에서 최신 버전 및 맞는 버전을 찾아 아래의 명령어로 설치한다.

 

 

YUM 을 이용하여 필수 라이브러리를 설치하자 ‘ㅅ’a

GEOIP 도 설치하쟈.

 

그다음 적당한 곳에 xtables-addons 을 다운 받아 압축해제 하고 설치 진행을 한다.

 

그다음은 설치된 xtables 에서 사용할 GEOIP 데이터를 만들어야 한다.

xtables 맥스마인드에서 기본 제공하는 GeoIP.dat, GeoIPv6.dat 를 이용하지 못하므로 만들어 줘야 한다.

데이터 베이스 위치는 /usr/share/xt_geoip/LE ,  /usr/share/xt_geoip/BE 폴더 이다.

만드는 툴은 설치본에서 geoip 폴더안의 xt_geoip_build 스크립트를 이용한다.

 

만들때 문제가 있다. 각 csv 로 생성할때 GeoIPCountryWhois.csv 으로 만들면 v6 데이터가 안나온다 ‘ㅅ’a

GeoIPv6.csv로 만들면 v4 데이터가 안나온다 ‘ㅅ’a

그래서 아래와 같이 만들고 해당것을 옴기는 작업을 한다.

 

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

캄파일 트러블 슈팅.

1. 컴파일 해도 인식이 안되는 경우

위명령어로 링크가 깨진경우 – 이는 현재 설치된 kernel 과 kernel-devel 버전이 맞지 않을 경우 나올 수 있다.
맞추어 주도록 하자. 맞춘후에는 리부팅이 필요하다.

2. xtables-addons 를 configure 후에 오류 발생시.

이러한 에러가 발생했다면 아래 파일을 수정해야 한다.

이는 최초 커널에서 나오는 문제는 아니고 커널 업데이트를 한 경우 발생할 수 있다.
#define CONFIG_IP6_NF_IPTABLES_MODULE 1 부분을 찾아서 /* */ 으로 주석처리를 한뒤에 컴파일 한다.