'전체 글'에 해당되는 글 93건

redis sentinel

redis 2015. 11. 30. 17:56

Redis sentinel은 redis failover를 위한 중개자.

http://redis.io/topics/sentinel

https://www.youtube.com/watch?v=fBDRO-d6cZQ

이 두개의 싸이트만 참조하면 대충 이해감.

Sentinel Config

sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

레디스 홈피에서도 말하듯 이게 mymaster 레디스 셋을 위한 미니멈 셋팅. slave정보는 sentinel config에 없어도됨. 알아서 마스터를 통해 가져옴


Master

마스터는 원래 띄우던 config로 띄우고


Slave

slave녀석은 마스터 녀석 설정에 다음을 추가한다. (마스터 config에 별다른 특이사항이 없다면 그냥 아래만 추가해서 써도될듯)

port 6380

slaveof 127.0.0.1 6379

(여기서 센티넬이 다른머신에 있다면 127 말고 머신 ip 써야 failover 됨)


'redis' 카테고리의 다른 글

zscore list copy  (0) 2016.10.12
[Redis] HSET vs SET  (0) 2015.01.09
블로그 이미지

시간을 거스르는자

,

sockaddr vs sockaddr_in

TCP/IP 2015. 8. 1. 14:35

sockaddr 은 소켓 operation에서 쓰이는 일반적인 주소 struct type이다.
sockaddr_in 은 IP 기반 internet 커뮤니케이션을 위한 주소 struct type이다.

struct sockaddr{
    unsigned short   sa_family;
    char             sa_data[14];
};

sockaddr_in은 sockaddr로 convert되도록 마지막 8byte의 char 패딩을 둠으로써 scokaddr과 동일사이즈로 정의되어있다.

struct sockaddr_in {
    short int            sin_family;
    unsigned short int   sin_port;
    struct in_addr       sin_addr;
    unsigned char        sin_zero[8];
};

struct in_addr {
    unsigned long s_addr;
};

'TCP/IP' 카테고리의 다른 글

Socket broken pipe  (0) 2019.02.20
블로그 이미지

시간을 거스르는자

,

Docker overview

서버 교양 2015. 6. 13. 13:54

Docker

  1. DockerFile
    1. 이 파일로 부터 instance image를 만든다.
    2. 어떤 파일을 복사해둘지, 어떤 패키지를 인스톨 할것인지, 어떤 명령어로 서버를 실행할지 설정을 해둔다.
    3. 여기서 expose와 run할때 expose는 그 의미가 좀 다르다.
    4. 여기서 expose는 이 instance의 특정 ip를 내부 컨테이너에 한정해서 열어두겠다. 이고 run할때 expose는 host로 어느 포트를 열어줄 것인가를 정의하는 것이다.
    5. 기본적으로 exposed되지 않은 포트로는 host에서 접속할 수 없다.
    6. volume도 마찬가지

  2. Image
    1. Container instance로 띄울수 있는 Image다. (아마존 AMI같은거라고 볼수 있다.)
  3. Container
    1. Image로 실행된 instance
    2. 각 프로세스라고 볼 수 있다.
    3. container안에 접속해서 새로운 패키지를 설치했을때 이 변경사항을 commit하여 새로운 이미지로 만들수도있다. 하지만 이걸 다시 docfile로 빼는것은 없는것 같다.

  4. Run
    1. expose
      1. run할 인스턴스에 특정 포트를 여는의미 -p 이용 (publish)
    2. link
      1. link는 container간에 container 이름이나 특정 ailias이름으로 접근하기 위해서 사용. 딱히 link를 안해주어도 하나의 host안에 떠있는 container들은 서로의 ip만 알면 접근가능하다. 하지만 ip는 설치할때마다 동적이므로 코드레벨에서 이름으로 지정해놓고 쓰려면 link를 이용하는게 좋다.
    3. volume
      1. expose와 비슷한 개념으로 폴더를 공유할 수있게 해준다. 좀더 특이한점은 여러 Container가 하나의 폴더를 공유할 수 있게도 해준다.
  5. Ambassador
    1. docker를 분산환경에 셋팅 할 수 도 있는데, 이때 서로 exposed된 port, ip에 name으로만 붙고싶은데 이때 붙었던 instance의 ip가 변경되면(스케일업을 한다던지) 여기 붙고있던 instance들의 hosts파일을 변경해준다던지 하는 추가 작업을 해줘야한다. 이때 Ambassador를 이용하면 mongos처럼 docker앞쪽에 network잡을 대신 처리해줄 수 있다.


  • Docker의 장점은 일단 local환경이나 개발환경에서 OS에 국한되지 않는 여러가지 셋팅이 가능하게 해준다는 점과 이를 Image로 관리해서 쉽게 개발환경을 구축할수있다는점.

====== 유용한 docker command =========
- docker file로 image 만들기: docker build -t name . (docker file 이 있는곳에서)
- 실행중 & 스탑된 container 목록: docker ps -a
- 실행중 & 스탑된 container 제거: docker rm container_id
- container image 목록: docker images
- container image 제거: docker rmi image_id
 
- docker command 실행이 끝나도 프로세스가 남아있어서 attach가능하도록
: docker run -dit container_name /bin/sh (그냥 docker run -it container_name 이라고 하고 써도 된다. 바로 접속해서 쓸꺼면.)
- host port mapping: docker run -p 8080:8080 (-P 대문자옵션은 dockerfile에서 미리 exposed된 것들을 맵핑하겠다는것이고 아니면 -p를 써야한다)
- host directory mount: -v host절대경로:docker절대경로
- docker container process로 shell 접속: docker attach contrainer_id (detatch 는 ctl p ctl q)
- docker container save: docker commit container_id image_name
(docker commit 2c08332 arena)
- docker container stop: docker stop container_id
- 각 docker file line당 disk증가량 보려면: docker history image_name

* 아 그리고 이게 명령어 마다 layer라서 실행하고 다른 라인으로 RUN rm 해봤자 용량이 줄지않는다. && 으로 연결해서 rm 해야 image 용량이 늘어나지 않는다!

* 참고로 dockerfile RUN하나당 disk layer하나다 무슨말인고 하니,

RUN wget something (200MB)

RUN rm something 

이렇게 하면 이미지 사이즈에 200메가는 반영되지 않기를 바라지만 200메가는 고스란히 반영된다.

RUN wget something && rm something 이라고 해야된다.

'서버 교양' 카테고리의 다른 글

Logstash install  (0) 2017.03.17
[펌] 인증 암호화와 해쉬  (0) 2016.10.29
SSL 인증서 발급  (0) 2015.03.04
글로벌 푸시 시스템 구성하기  (0) 2015.01.16
글로벌 푸시 보내기  (0) 2014.11.27
블로그 이미지

시간을 거스르는자

,