HAProxy 설치하기 



Haproxy 는 소프트웨어 방식으로 TCP 기반의 HA 구성을 가능하게 해주는 오픈소스로


L4와 L7의 기능을 제공하고 설치 및 설정이 간편하기 때문에 빠른 이중화 구성이 가능하다.


게다가 버전이 올라가면서 SSL까지 정식으로 지원하게되면서 활용도가 많이 높아졌다.


기본설치부터 SSL설정까지 알아보자.



OS : CentOS 6.3 x64



1. 설치


1.5버전 부터 정식으로 ssl을 지원하므로 이후 버전을 사용하는게 좋다.


현재 최신 안정화버전은 1.6이지만 쭉 사용하던 1.5버전 기준으로 작성한다.



기본패키지 설치


yum install gcc gcc-c++ pcre-devel openssl-devel 


다운로드


wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.17.tar.gz


압축풀고


tar xvfz haproxy-1.5.17.tar.gz

cd haproxy-1.5.17



컴파일설치


make USE_OPENSSL=1 TARGET=linux2628 ARCH=x86_64

make install



실행파일작업

cp -a examples/haproxy.init /etc/rc.d/init.d/haproxy

chmod 700 /etc/rc.d/init.d/haproxy 

ln -s /usr/local/sbin/haproxy /usr/sbin/



설치끝. 엄청간단하다!




2. 설정파일


설정파일 경로만들고


mkdir -p /etc/haproxy



설정입력


vi /etc/haproxy/haproxy.cfg


# 서버관련된 사항들. 딱!! 보면 아는 옵션들...;


global

        log 127.0.0.1 local0 

        maxconn 4096

        user nobody

        group nobody

        daemon

        tune.ssl.default-dh-param 2048

 

# frontend 나 backend 에 지정된 설정이 없으면 defaults 설정을 따름

defaults

        log global

        mode http

        timeout connect 5000ms

        timeout client 50000ms

        timeout server 50000ms

        option dontlognull

        option http-server-close

        option tcplog

        option httplog

        option httpclose

        option forwardfor

        option accept-invalid-http-request


# 상태확인 페이지 설정. http://www.system.co.kr:8888 이런식으로 접근가능

listen admin *:8888

        stats enable

        stats uri /admin

        stats auth admin:password

        stats refresh 5s


# 각 웹서버들 앞단에 위치한 haproxy 자체에 대한 설정

frontend systemv_web_front

        bind 10.0.0.1:80

        bind 10.0.0.1:443 ssl crt /etc/haproxy/www.systemv.co.kr.pem

        reqadd X-Forwarded-Proto:\ https

        default_backend systemv_web_back


# haproxy 뒷단에 있는 real 웹서버들에 대한 설정

backend systemv_web_back

        errorfile 503 /etc/haproxy/index.html

        balance source

        cookie SERVERID insert indirect nocache

        option httpchk HEAD /index.jsp HTTP/1.0

        server web1 10.0.0.10:80 cookie s1 check inter 2000 rise 2 fall 2

        server web2 10.0.0.11:80 cookie s2 check inter 2000 rise 2 fall 2



설정중 몇가지만 정리해보자


errorfile 

모든 웹서버가 죽었을때 보여줄 페이지다. 임의로 html 형식으로 작성하면 된다. 

<img src 같은 태그는 안먹는것같다. 텍스트 위주로 쓰자.


balance

haproxy 는 여러 기준으로 로드밸런싱을 구현하는데 balance에 사용할수 있는 옵션은 아래와 같다.

roundrobin : 순차적 분배

static-rr : 각서버별로 설정한 가중치값에 따라 분배

leastconn : 접속수에 따라 분배

source : 전체 웹서버별수를 기준으로 접속자 IP를 해싱해서 분배

그외 uri, url_param, hdr,rdp-cookie 등이 더 있는데.. 일반적이지 않으므로 생략.


server

server 뒤에오는 web1, web2등의 이름은 임의로 부여가능하다. 

cookie s1 은 각 서버로 접속시에 SERVERID 라는 이름으로 s1 이라는 쿠키를 굽겠다는거고

inter 2000 은 헬스체크하는 시간 간격이다(밀리세컨).

fall 2 는 헬스체크시 2번 연속 다운이면 연결을 끊겠다는거고

rise 2 는 연결 끊긴상태에서 헬스체크시 연속 2번 살았다면 HA에 다시 포함시키겠다는 거다.



fall 과 rise 설정을 통해서 failover 와 failback 이 자동으로 실행되는데 간혹 failback은 하고 싶지 않을때가 있다.


이와 관련해서는 아래 링크에서 자세히 알수있는데 약간의 꼼수를 이용해 훨씬 간단히 구현할수 있다.

( http://blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/ ) 


rise 값을 99999999999 처럼 어이없이 늘려놓으면 된다. 예를 들어 inter 값이 1000 이라면 3000년 이후에 failback 이 될것이다.




3. SSL 


haproxy 를 사용할때는 각 웹서버에 인증서를 설치할 필요가 없다.


인증서는 haproxy 서버에만 설치하면 되며 모든 인증파일을 합쳐 하나의 파일로 만들어 


bind 의 crt 옵션을 사용해 파일명을 지정해 주면된다.



SSL인증서를 발급받으면 총 4개의 파일이 딸려온다.


- 도메인인증서 : 보통 신청한 도메인명을 포함한 파일이고 crt등의 확장자가 붙어있다.


- 상위인증서 : 상위기관 인증파일이며 CA인증서라고도 한다.


- 체인인증서 : 번들인증서, 중간인증서, intermediate 인증서라고 불린다.


- 키파일 : 내가 csr 생성시 사용한 키파일이다.



haproxy 에서 사용할 단일 인증파일을 만들기는 아주 간단하다. 


그냥 각 파일들을 텍스트 형식으로 오픈해 합치기만 하면 된다.


파일 합치기는 도메인인증서 -> 체인인증서 -> 상위인증서 -> 키파일 순이다.


cat 도메인 체인 상위 키파일 > crt.pem 이렇게 하면 pem 파일에 캐리지리턴값(^M) 이 들어갈 수 


있기때문에 하나씩 열어서 붙여주는게 좋다.


-----BEGIN MY CERTIFICATE-----

-----END MY CERTIFICATE-----

-----BEGIN INTERMEDIATE CERTIFICATE-----

-----END INTERMEDIATE CERTIFICATE-----

-----BEGIN INTERMEDIATE CERTIFICATE-----

-----END INTERMEDIATE CERTIFICATE-----

-----BEGIN ROOT CERTIFICATE-----

-----END ROOT CERTIFICATE-----

-----BEGIN RSA PRIVATE KEY-----

-----END RSA PRIVATE KEY-----



4. 로그설정


로그 설정은 좀 더 살펴봐야 할것같은데 기본적으로 syslog 를 통해서 남기고 로그로테이트를 통해서 로그를 순환하는 방법까지만 남긴다.


vi /etc/rsyslog.d/haproxy.conf


$ModLoad imudp

$UDPServerRun 514 

$template Haproxy,"%msg%\n"

local0.=info -/var/log/haproxy/haproxy-info.log;Haproxy

local0.notice -/var/log/haproxy/haproxy-notice.log;Haproxy

local0.* ~ 




vi /etc/logrotate.d/haproxy


/var/log/haproxy/*.log {

    size 1k

    missingok

    rotate 14

    compress

    ifempty

    delaycompress

    sharedscripts

    postrotate

        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}














'리눅스ETC' 카테고리의 다른 글

리눅스 컴파일 속도 향상시키기 make -j  (0) 2016.04.27
iscsi 구성하기  (0) 2016.04.06
php configure 에러  (0) 2016.04.06
리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05


MySQL PID 경로(파일명) 변경하기


DB : Maria 10.1



분명 예전엔 [mysqld] 섹션에 pid-file=경로 이렇게 쓴거 같은데... 이상하게 안되는거다.


버전이 올라가면서 바꼈나?... 싶어서 생각해보니 mysqld 가 아니라 왠지 mysqld_safe 일꺼 같은거다.


그래서 그쪽으로 설정을 바꿔 넣어보니 역시나 안된다.


MariaDB [(none)]> show global variables like '%pid%';

+---------------+-------------------------------------------+

| Variable_name | Value                                     |

+---------------+-------------------------------------------+

| pid_file      | /app/mariadb/data/localhost.localdomain.pid |

+---------------+-------------------------------------------+

1 row in set (0.00 sec)


MariaDB [(none)]>



에라이 모르겠다. 검색..ㄱㄱ 했지만 역시 내가 아는 것과 내용들은 비슷비슷...



결국 마지막으로 메뉴얼 ㄱㄱ.. 역시나 메뉴얼에 모든게 있다.


원문

 --pid-file=file_name


The path name of the file in which the server should write its process ID.


If this option is not given, mysql.server uses a default value of host_name.pid. The PID file 

value passed to mysqld_safe overrides any value specified in the [mysqld_safe] option file group.

Because mysql.server reads the [mysqld] option file group but not the [mysqld_safe] group, 

you can ensure that mysqld_safe gets the same value when invoke using mysql.server as when 

invoked manually by putting the same pid-file setting in both the [mysqld_safe] and [mysqld]

groups.



요약하자면... 


pid-file 옵션은 PID값을 저장하고 있는 파일을 지정하는 옵션이고


별다른 설정을 안하면 DATA_DIR/HOST_NAME.pid 라는 경로 및 파일명을 갖는다.


mysql.server 스크립트를 이용해 서비스를 구동/정지 할 시에는 


my.cnf의 [mysqld] 섹션과 [mysqld_safe] 섹션에 pid-file 옵션을 모두 넣어줘라....인듯..? 



그래서 두군데 섹션에 모두 넣어주고 


[mysqld]

pid-file=/app/mariadb/data/mariaDB.pid


[mysqld_safe]

pid-file=/app/mariadb/data/mariaDB.pid



확인했더니.. 잘바껴져있다.



MariaDB [(none)]> show global variables like '%pid%';

+---------------+-------------------------------+

| Variable_name | Value                         |

+---------------+-------------------------------+

| pid_file      | /app/mariadb/data/mariaDB.pid |

+---------------+-------------------------------+

1 row in set (0.00 sec)


MariaDB [(none)]> 

리눅스 컴파일 속도 향상시키기 make -j



개발자든 관리자든 리눅스를 사용하다보면 make를 사용할 일이 은근히 많다.


서버 스펙이 좋든 나쁘든 별다른 옵션없이 make 를 쓰는 경우가 많은데... 성능낭비다.


좋은 스펙이라면 job을 병렬로 실행해 훨씬 빠른 속도로 컴파일을 마칠수 있다.



make -j INT



1. 테스트서버


테스트서버 : Xeon E5-2630, 96G RAM, 6ea 15000k SAS


6core CPU가 2개이므로 12core. 하이퍼스레딩을 포함하면 총 24core 이다.



2. 테스트


테스트 대상은 mariadb 소스컴파일 설치시 진행하는 make를 기준으로 진행하며


동일한 cmake 옵션으로 configure 하고 -j 옵션의 인자값만 바꿔가며 테스트해보기로 한다.


테스트 서버가 아주 노는 서버는 아니므로 4가지로 인자를 바꾸며 테스트 하는 과정을 1세트로 총 3세트를 진행해 오차를 줄였다. 



2.1 make 


처음 테스트는 아무옵션 없이 그냥 make 를 실행했다.


병렬처리가 안되기 때문에 아래 그림에서 보는것처럼 core별 사용량이 특별한게 없다.




make 총 시간 : 18분



2.2 make -j 5


5개로 분할해서 처리 해보니 몇몇 core가 튀는게 사용량이 좀되는듯하다.



make 총시간 : 4분



2.3 make -j 10 


10개로 분할하니 거의 모든 core가 사용되는듯하다.



make 총시간 : 2분



2.4 make -j 20


20개로 분할했을때 결과가 조금 의아했는데... 


모든 core를 사용하고 있었는데 시간은 10개에 비해 고작 20초가 줄었을 뿐이다.



make 총시간 : 1분 40초 



3. 결론


테스트 결과 core가 많은 장비라면 -j 옵션을 사용할 이유가 너무도 명확해졌다.


물론 10개와 20개로 분할했을때의 차이가 거의 나지않는건 좀 이상했지만...


core사용량 스샷이나 총시간을 감안했을때 하이퍼스레딩은 이번 테스트에서 영향이 없는게 아닐까...


실제 12core 만큼의 성능만 보여주는듯하다. 30개로 한번 더해봤다면 좋았을텐데.. 이놈의 귀차니즘...ㅠ



추가로.... 3세트로 진행해 평균으로 총시간을 기록했지만 사실 3세트 모두 결과가 같았다는.....음...;




'리눅스ETC' 카테고리의 다른 글

HAProxy 설치하기  (0) 2016.05.04
iscsi 구성하기  (0) 2016.04.06
php configure 에러  (0) 2016.04.06
리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05

리눅스 MariaDB 설치하기


OS : CentOS 6.3 x64



1. 다운로드


다운로드 : https://downloads.mariadb.org


현재 최신 안전화버전은 10.1 이다.



설치방법은 소스컴파일 방식과 패키지 설치방식이 있는데 어느쪽이 더 좋은가는 


본인의 편의성,운영스타일 등을 생각해 스스로 선택하면 된다.


인터넷에 떠도는 카더라 소식통을 보면 특정 플랫폼에서 어떤 방식이 더 좋니마니 하는 얘기가 많은데


이것도 믿을지 말지는 본인 몫이다. 


systemv는 컴파일 방식을 선호하기에 mariadb-10.1.13.tar.gz 을 다운받았다.



2. 설치


설치에 필요한 패키지를 먼저 yum 으로 설치한다.


yum install -y gcc gcc-c++ cmake ncurses-devel bison libxml2-devel


다운받은 압축파일을 서버의 적당한 위치에 올려두고 압축을 푼다.


tar xvfz mariadb-10.1.13.tar.gz


cd mariadb-10.1.13


설치는 cmake(configure), make, make install 의 과정을 거친다.



2.1 cmake


cmake에 붙여쓸수 있는 옵션은 굉장히 다양하지만 정확한 용도와 가능을 모른다면 안쓰느니만 못하다.


인터넷에 나도는 복붙수준의 장황한 옵션들은 절대 필수가 아니므로 스스로 아는 범위내에서 꼭 필요한 옵션만 추가하자.


systemv가 권장하는 옵션은 아래 5가지이다.


DEFAULT_CHARSET

DEFAULT_COLLATION

ENABLED_LOCAL_INFILE

CMAKE_INSTALL_PREFIX

MYSQL_DATADIR


위에 두가지는 기본 언어셋 관련 설정이고 3번째는 로컬파일로 대량데이터 인서트시 유용하다.


4번째,5번째는 설치될 기본경로와 데이터파일의 경로를 지정한것이다.



그래서 결국 완성된 옵션은..


cmake \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_LOCAL_INFILE=1 \

-DCMAKE_INSTALL_PREFIX=/app/mariadb \

-DMYSQL_DATADIR=/app/mariadb/data



아래와 같이 configure가 이상없이 끝난것을 확인 할 수 있다.


-- Looking for include file security/pam_appl.h - not found

-- Looking for strndup

-- Looking for strndup - found

-- Looking for event.h

-- Looking for event.h - not found

-- Configuring done

-- Generating done

-- Build files have been written to: /root/mariadb-10.1.13

[root@localhost mariadb-10.1.13]# 


configure에서 별 문제가 없었다면 make, make install 을 실행해 설치를 마친다.



2.2 make


make 시에 -j 옵션을 쓸수 있는데 자세한 내용은 리눅스 컴파일 속도 향상시키기 make -j  를 참고하자.


make


...

......

Scanning dependencies of target udf_example

[100%] Building C object sql/CMakeFiles/udf_example.dir/udf_example.c.o

Linking C shared module udf_example.so

[100%] Built target udf_example

Scanning dependencies of target my_safe_process

[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o

Linking CXX executable my_safe_process

[100%] Built target my_safe_process

[root@localhost mariadb-10.1.13]# 



2.3 make install


make install


...

.....

-- Installing: /app/mariadb/support-files/policy/apparmor

-- Installing: /app/mariadb/support-files/policy/apparmor/usr.sbin.mysqld.local

-- Installing: /app/mariadb/support-files/policy/apparmor/README

-- Installing: /app/mariadb/support-files/policy/apparmor/usr.sbin.mysqld

-- Installing: /app/mariadb/share/pkgconfig/mariadb.pc

-- Installing: /app/mariadb/share/aclocal/mysql.m4

-- Installing: /app/mariadb/support-files/mysql.server

[root@localhost mariadb-10.1.13]# 



3. 추가작업


소소한 추가작업 몇가지만 더 해준다.


3.1 사용자추가


useradd -M -s /sbin/nologin mysql


-M 은 /home/mysql 등의 홈데렉토리를 만들지 않겠다는 것이며


-s 는 로그인쉘을 지정할수 있다. mysql 계정은 데몬 실행시에 필요한 권한이지 쉘권한은 필요없기때문에 nologin을 줬다.

(사실 패스워드 지정을 안하면 로그인은 어차피 안된다.)



3.2 my.cnf


원하는 기능들은 추후에 얼마든지 my.cnf를 수정해 사용할수 있지만 


데이터 경로나 innodb 관련 파일등의 셋팅을 위해서라도 my.cnf를 먼저 구성해두면 좋다.


my.cnf 설정에 대한 자세한 내용 나중에 다시 정리하도록 하겠다.



3.3 mysql_install_db


mariadb 최소 실행에 필요한 기초 데이터베이스와 사용자등을 생성해준다.


mysql_install_db 는 설치경로(/app/mariadb)안에 scripts 디렉토리에 있다.


하지만 


~# /app/mariadb/scripts/mysql_install_db 


혹은


~# cd /app/mariadb/scripts ; ./mysql_install_db 


이런 식으로 실행하면 안된다. 스크립트 안에 참조하는 경로들이 이미 선언되어 있기 때문에


반드시 설치디렉토리(/app/mariadb)에서 실행해야 한다.


cd /app/mariadb


./scripts/mysql_install_db


...

.....


2016-04-27 23:41:17 139804154201888 [Note] InnoDB: Waiting for purge to start

2016-04-27 23:41:18 139804154201888 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.28-76.1 started; log sequence number 1616809

2016-04-27 23:41:18 139803347433216 [Note] InnoDB: Dumping buffer pool(s) not yet started

OK


To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !

To do so, start the server, then issue the following commands:


'./bin/mysqladmin' -u root password 'new-password'

'./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'


Alternatively you can run:

'./bin/mysql_secure_installation'


which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.


See the MariaDB Knowledgebase at http://mariadb.com/kb or the

MySQL manual for more instructions.


You can start the MariaDB daemon with:

cd '.' ; ./bin/mysqld_safe --datadir='./data'


You can test the MariaDB daemon with mysql-test-run.pl

cd './mysql-test' ; perl mysql-test-run.pl


Please report any problems at http://mariadb.org/jira


The latest information about MariaDB is available at http://mariadb.org/.

You can find additional information about the MySQL part at:

http://dev.mysql.com

Support MariaDB development by buying support/new features from MariaDB

Corporation Ab. You can contact us about this at sales@mariadb.com.

Alternatively consider joining our community based development effort:

http://mariadb.com/kb/en/contributing-to-the-mariadb-project/


[root@localhost mariadb]#


중간쯤에... OK 보이는가? 잘된거다. 


혹시 모르니 data 디렉토리에 필요한 파일들이 잘 생성됐는지 확인해보면 된다.


[root@localhost mariadb]# ls -alh ./data/


total 109M

drwxr-xr-x.  5 root root 4.0K Apr 27 23:41 .

drwxr-xr-x. 12 root root 4.0K Apr 27 22:12 ..

-rw-rw----.  1 root root  16K Apr 27 23:41 aria_log.00000001

-rw-rw----.  1 root root   52 Apr 27 23:41 aria_log_control

-rw-rw----.  1 root root  12M Apr 27 23:41 ibdata1

-rw-rw----.  1 root root  48M Apr 27 23:41 ib_logfile0

-rw-rw----.  1 root root  48M Apr 27 23:41 ib_logfile1

drwx------.  2 root root 4.0K Apr 27 23:41 mysql

drwx------.  2 root root 4.0K Apr 27 23:41 performance_schema

drwxr-xr-x.  2 root root 4.0K Apr 27 22:11 test


이상이 없다면 data 디렉토리를 mysql 소유권으로 바꿔준다. 


chown mysql. ./data -R


-R 옵션은 지정한 디렉토리 뿐만 아니라 그안에 있는 모든 디렉토리와 파일등을 몽땅 바꿔주겠다는 의미다.



mariadb를 실행/종료할수 있는 방법은 다양하지만 제공되는 스크립트가 있으므로 가져다 쓰면 편하다.


cp -a support-files/mysql.server /etc/rc.d/init.d/mysqld



4. 실행


방금 위에서 가져다논 실행파일을 이용하면 된다.


실행 :


[root@localhost mariadb]# /etc/rc.d/init.d/mysqld start

Starting MySQL. SUCCESS! 


종료 :


[root@localhost mariadb]# /etc/rc.d/init.d/mysqld stop

Shutting down MySQL.. SUCCESS! 



5. 마무리


5.1 PATH


/app/mariadb/bin 에 mariadb 실행파일들이 모두 있기 때문에 얘를 PATH로 걸어주면


쉘에서 관리하기 편하다.  


echo "PATH=$PATH:/app/mariadb/bin" >> ~/.bash_profile



5.2 secure


/app/mariadb/bin/mysql_secure_installation 을 실행해 기본 보안설정을 할수 있다.



실행하면 아래처럼 먼저 현재 root 비밀번호를 물어보는데 우린 방금 설치를 마쳤기때문에 root 패스워드가 없으므로 그냥 엔터!


[root@localhost bin]# ./mysql_secure_installation


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!


In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.


Enter current password for root (enter for none): 



그러면 패스워드 지금 설정할꺼냐고 물어본다. 엔터! 치고 원하는 mariadb root 패스워드 두번 입력.


Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.


Set root password? [Y/n] 

New password: 

Re-enter new password: 



mysql_install_db 실행시 익명사용자가 생성되는데 아무짝에 쓸모 없다. 지울껀지 물어보면 지운다고 엔터!!


By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.


Remove anonymous users? [Y/n]



root 를 로컬이 아닌 외부에서 접속할수 없게 하겠냐고 물어본다. 외부접속을 막을꺼면 엔터!!


Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.


Disallow root login remotely? [Y/n] 



역시 mysql_install_db 실행시 test 데이터베이스 생성하는데 아무짝에 쓸모 없으므로 엔터!!


By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.


Remove test database and access to it? [Y/n] 



마지막으로 여지껏 수정한 내용으로 권한 업데이트를 할꺼냐고 물어몬다. 당연히 엔터!!


Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.


Reload privilege tables now? [Y/n] 



깔끔하게 끝.


Cleaning up...


All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.


Thanks for using MariaDB!

[root@localhost bin]# 




iscsi 구성하기

iscsi 구성하기


스토리지로 이용할서버 (타겟)


  타겟설치

yum install scsi-target-utils


  타겟실행

/etc/rc.d/init.d/tgtd start

  ntsysv에서 tgtd 등록


  타겟이름지정

tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.data.systemv.co.kr:storage.disk1   

 

  타겟이름확인

tgtadm --lld iscsi --op show --mode target


  타겟볼륨등록

tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/cciss/c0d1p1


  타겟볼륨확인

tgtadm --lld iscsi --op show --mode target


  타겟바인딩

tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL


  타겟설정등록

mv /etc/tgt/targets.conf /etc/tgt/targets.conf_ori

tgt-admin --dump > /etc/tgt/targets.conf





스토리지를 로컬처럼 쓰기위한 서버(이니시에이터)


  설치

yum install iscsi-initiator-utils


  실행 

/etc/rc.d/init.d/iscsi start

  ntsysv에서 iscsi 등록


  타겟찾기

iscsiadm --mode discovery --type sendtargets --portal IP(타켓아이피)


  타겟에 로긴

iscsiadm --mode node --targetname iqn.systemv.co.kr:storage.disk1 --portal IP(타켓아이피) --login  


  확인

fdisk -l




타겟으로 부터 로그아웃

모두 로그아웃 : iscsiadm --mode node -u

선택 로그아웃 : iscsiadm --mode node -u -T iqn.systemv.co.kr:storage.disk1 -p IP(타켓아이피)


할당된 LUN 삭제

tgtadm --lld iscsi --mode target --op delete --tid 1



'리눅스ETC' 카테고리의 다른 글

HAProxy 설치하기  (0) 2016.05.04
리눅스 컴파일 속도 향상시키기 make -j  (0) 2016.04.27
php configure 에러  (0) 2016.04.06
리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05

오류 메세지 : configure: error: xml2-config not found. Please check your libxml2 installation 

해결 방법 : yum install libxml2 libxml2-devel -y 


오류 메세지 : configure: error: Please reinstall the BZip2 distribution 

해결 방법 : yum -y install bzip2-devel 


오류 메세지 : configure: error: libjpeg.(a|so) not found. 

해결 방법 : yum -y install libjpeg-devel 


오류 메세지 : configure: error: libpng.(a|so) not found. 

해결 방법 : yum -y install libpng-devel 


오류 메세지 : configure: error: freetype.h not found. 

해결 방법 : yum -y install freetype-devel 


오류 메세지 : configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information. 

해결 방법 : yum -y install libc-client-devel 


오류 메세지 : configure: error: Kerberos libraries not found. 

해결 방법 : yum -y install krb5-devel 



오류 메세지 : configure: error:Cannot find OpenSSL's <evp.h> 

해결 방법 : yum -y install openssl-devel 


configure: error: XML-RPC support requires libexpat. Use --with-expat-dir=<DIR> 

yum install expat-devel 

'리눅스ETC' 카테고리의 다른 글

리눅스 컴파일 속도 향상시키기 make -j  (0) 2016.04.27
iscsi 구성하기  (0) 2016.04.06
리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05
오라클 sys로 exp/imp  (0) 2016.03.30

CentOS 6.3 x64


/home 파티션 미리 넉넉하게...

 


# 필수 설치

yum -y install netatalk avahi  dbus nss-mdns



# 계정 생성

useradd systemv

passwd systemv

mkdir /home/systemv/TM

chown systemv. /home/systemv/TM



# 설정 변경

/etc/netatalk/afpd.conf 가장 아래줄에 추가

- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_dhx2.so -nosavepassword -advertise_ssh


/etc/netatalk/AppleVolumes.default 가장 아래줄에 추가

/home/systemv/TM allow:systemv options:usedots,upriv,tm dperm:0775 fperm:0660 cnidscheme:dbd


/etc/nsswitch.conf 가장 아래줄에 추가

hosts:      files mdns4_minimal dns mdns mdns4


/etc/avahi/services/afpd.service 새로 생성

<?xml version="1.0" standalone='no'?>

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

<name replace-wildcards="yes">%h</name>

<service>

<type>_afpovertcp._tcp</type>

<port>548</port>

</service>

<service>

<type>_device-info._tcp</type>

<port>0</port>

<txt-record>model=TimeCapsule</txt-record>

</service>

</service-group>



# 기존 서비스 중지

mv /etc/avahi/services/ssh.service /etc/avahi/services/ssh.service.disabled



# 서비스 시작

/etc/rc.d/init.d/messagebus start

/etc/rc.d/init.d/avahi-daemon start

/etc/rc.d/init.d/netatalk start


# 방화벽 오픈

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

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

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

-A INPUT -p udp -m udp --dport 548 -j ACCEPT

-A INPUT -p udp -m udp --dport 5353 -j ACCEPT

-A INPUT -p udp -m udp --dport 5354 -j ACCEPT


# /etc/rc.local 에 추가 (서버구동시 실행)

/etc/rc.d/init.d/messagebus start

/etc/rc.d/init.d/avahi-daemon start

/etc/rc.d/init.d/netatalk start



# 에러 


dbus_bus_get_private(): Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory


messagebus 를 안올리고 avahi-daemon 을 실행했기때문이다. messagebus 먼저 실행하면 문제 없다.



SO_REUSEPORT failed: Protocol not available

Failed to create server: No suitable network protocol available


/etc/avahi/avahi-daemon.conf

#disallow-other-stacks=no  찾아서 

disallow-other-stacks=yes  이렇게 바꿔준다



# 연결

동일한 대역에 있는 맥에서 타임머신 실행해서 리눅스타임캡슐 보이면 성공~





'리눅스ETC' 카테고리의 다른 글

iscsi 구성하기  (0) 2016.04.06
php configure 에러  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05
오라클 sys로 exp/imp  (0) 2016.03.30
vim 설치중 행.. 멍때림  (0) 2016.03.30

mysql 설치 에러

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

configure: error: No curses/termcap library found 

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


yum install libtermcap-devel


'리눅스ETC' 카테고리의 다른 글

php configure 에러  (0) 2016.04.06
리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
오라클 sys로 exp/imp  (0) 2016.03.30
vim 설치중 행.. 멍때림  (0) 2016.03.30
yum 속도 개선  (0) 2016.03.30


imp \'sys/패스워드 as sysdba\’

'리눅스ETC' 카테고리의 다른 글

리눅스 CentOS / netatalk 로 타임캡슐 만들기  (0) 2016.04.06
mysql 설치 에러  (0) 2016.04.05
vim 설치중 행.. 멍때림  (0) 2016.03.30
yum 속도 개선  (0) 2016.03.30
rsync 에러  (0) 2016.03.30

vim 설치중에 make 잘하고 make install 할시에


...

......

/bin/sh ./mkinstalldirs /usr/local/share/vim/vim73/keymap

mkdir /usr/local/share/vim/vim73/keymap

chmod 755 /usr/local/share/vim/vim73/keymap

/bin/sh ./installman.sh install /usr/local/share/man/fr/man1 "-fr" /usr/local/share/vim /usr/local/share/vim/vim73 /usr/local/share/vim ../runtime/doc 644 vim vimdiff evim

installing /usr/local/share/man/fr/man1/vim.1


여기서 멈추는 경우가 있다.


간단하게


LANG=C 하고 다시 make install 해보자.

'리눅스ETC' 카테고리의 다른 글

mysql 설치 에러  (0) 2016.04.05
오라클 sys로 exp/imp  (0) 2016.03.30
yum 속도 개선  (0) 2016.03.30
rsync 에러  (0) 2016.03.30
drbd 설치  (0) 2016.03.30

to Top