서버 인프라를 지탱하는 기술
도서명:서버 인프라를 지탱하는 기술
저자/출판사:이토,나오야,카츠미,유키,다나카,신지,히로세,마사아키/제이펍
쪽수:436쪽
출판일:2009-04-22
ISBN:9788996241003
목차
1장 서버/인프라 구축 입문 …… 다중화 / 부하분산의 기본
1.1 다중화의 기본 2
다중화란 2
다중화의 본질 2
라우터 장애시의 대응 4
웹 서버 장애시의 대응 5
장애극복 7
장애검출 …… 헬스체크 8
Active/Backup 구성 만들기 10
서버를 효과적으로 활용하자 …… 부하분산 12
1.2 웹 서버의 다중화 DNS 라운드로빈 13
DNS 라운드로빈 13
DNS 라운드로빈의 다중화 구성 예 14
보다 편하게 시스템 확장하기 …… 로드밸런서 18
1.3 웹 서버의 다중화 IPVS를 이용한 로드밸런서 19
DNS 라운드로빈과 로드밸런서의 차이 19
IPVS …… 리눅스로 로드밸런서 구성 20
스케줄링 알고리즘 21
IPVS 사용하기 23
로드밸런서 구축하기 24
L4스위치와 L7스위치 28
L4스위치의 NAT구성과 DSR구성 29
동일 서브넷인 서버를 부하분산할 경우 주의사항 31
1.4 라우터 및 로드밸런서의 다중화 33
다중화란 33
다중화 프로토콜 VRRP 33
VRRP의 구조 34
keepalived의 구조상의 문제 38
keepalived 다중화 39
keepalived 응용 43
2장 한 단계 높은 서버/인프라 구축 …… 다중화, 부하분산, 고성능 추구
2.1 리버스 프록시 도입 아파치 모듈 46
리버스 프록시 입문 46
HTTP 요청 내용에 따른 시스템의 동작 제어 47
시스템 전체의 메모리 사용효율 향상 49
리버스 프록시의 도입 57
웹 서버가 응답하는 데이터의 버퍼링의 역할 53
아파치 모듈을 이용한 처리의 제어 56
진보된 RewriteRule의 설정 예 64
mod_proxy_balancer로 여러 호스트로 분산하기 65
2.2 캐시서버 도입 Squid, emcached 69
캐시서버 도입 69
Squid 캐시서버 71
memcached에 의한 캐시 76
2.3 MySQL 리플리케이션 단시간에 장애복구하기 79
DB서버가 멈춘다면? 79
MySQL 리플리케이션 기능의 특징과 주의점 81
리플리케이션의 원리 83
리플리케이션 구성을 만들기까지 84
리플리케이션 시작 87
리플리케이션 상황 확인 89
2.4 MySQL 슬레이브 + 내부 로드밸런서 활용 예 94
MySQL 슬레이브 활용방법 94
슬레이브 참조를 로드밸런서 경유로 수행하는 방법 96
내부 로드밸런서의 주의점 …… 분산방법은 DSR로 하라 101
2.5 고속, 경량의 스토리지 서버 선택 102
스토리지 서버의 필요성 102
이상적인 스토리지 서버 105
HTTP를 스토리지 프로토콜로 이용하기 106
남은 과제 108
3장 무중단 인프라를 향한 새로운 연구 …… DNS 서버, 스토리지 서버, 네트워크
3.1 DNS서버의 다중화 112
DNS서버 다중화의 중요성 112
주소변환 라이브러리를 이용한 다중화와 문제점 112
서버팜에서의 DNS 다중화 115
VRRP를 이용한 구성 115
DNS서버의 부하분산 117
정리 119
3.2 스토리지 서버의 다중화 DRBD로 미러링 구성 120
스토리지 서버의 장애 대책 120
스토리지 서버의 동기화 문제 120
DRBD 121
DRBD의 설정과 실행 123
DRBD의 장애극복 127
NFS서버를 장애극복할 때 주의점 131
백업의 필요성 131
3.3 네트워크의 다중화 Bonding 드라이버, RSTP 132
L1, L2 구성요소의 다중화 132
장애발생 포인트 132
링크의 다중화와 Bonding 드라이버 133
스위치의 다중화 135
스위치의 증설 138
RSTP 140
정리 143
3.4 VLAN 도입 유연한 네트워크 구성 145
서버팜에서 유연성이 높은 네트워크 145
VLAN 도입이 가져오는 이점 146
VLAN의 기본 150
VLAN의 종류 151
서버팜에서 활용 154
열쇠는 물리적 구성의 단순화 159
4장 성능향상, 튜닝 …… 리눅스 단일 호스트, 아파치, MySQL
4.1 리눅스 단일 호스트 부하의 진상규명 162
단일 호스트의 성능 끌어내기 162
추측하지 말라, 계측하라 163
병목 규명작업의 기본적인 흐름 165
부하란 무엇인가 167
Load Average를 계산하는 커널 코드 확인 177
CPU사용률과 IO대기율 179
멀티CPU와 CPU사용률 182
CPU사용률이 계산되는 원리 184
프로세스 어카운팅의 커널 코드 확인 186
쓰레드와 프로세스 189
ps, sar, vmstat 사용법 193
OS튜닝이란 부하의 원인을 알고 이를 제거하는 것 207
4.2 아파치 튜닝 209
웹 서버 튜닝 209
웹 서버가 병목현상? 209
아파치의 병렬처리와 MPM 210
httpd.conf 설정 216
Keep-Alive 227
아파치 이외의 선택방****검토 227
4.3 MySQL 튜닝의 핵심 230
MySQL 튜닝의 핵심 230
메모리 관련 파라미터 튜닝 233
메모리 관련 체크툴 …… mymemcheck 237
5장 효율적인 운용 …… 안정된 서비스를 향해
5.1 서비스의 가동감시 Nagios 240
안정된 서비스 운영과 서비스의 가동감시 240
Nagios의 개요 243
Nagios의 설정 244
웹 관리화면 250
Nagios의 기본적인 사용법 253
Nagios 응용법 258
정리 264
5.2 서버 리소스 모니터링 Ganglia 265
서버 리소스 모니터링 265
모니터링 툴 266
Ganglia …… 대량의 노드에 적합한 그래프화 툴 267
아파치 프로세스의 상태 그래프화 269
5.3 서버관리의 효율화 Puppet 274
효율적인 서버관리를 실현하는 툴 Puppet 274
Puppet의 개요 275
Puppet의 설정 276
설정파일 작성방법 279
로그 통지 288
운용 290
자동 설정관리 툴의 장단점 290
5.4 데몬의 가동관리 daemontools 292
데몬이 비정상 종료했을 경우 292
daemontools 293
데몬의 관리방법 295
daemontools의 팁 301
5.5 네트워크 부트의 활용 PXE, initramfs 306
네트워크 부트 306
네트워크 부트의 동작 …… PXE 307
네트워크 부트의 활용 예 310
네트워크 부트를 구성하기 위해 312
5.6 원격관리 관리회선, 시리얼 콘솔, IPMI 316
원격 로그인 316
네트워크 장애 대비 316
시리얼 콘솔 320
IPMI 323
정리 325
5.7 웹 서버 로그관리 syslog, syslog-ng, cron, rotatelogs 326
웹 서버 로그 집약, 수집 326
집약과 수집 326
로그 집약 …… syslog와 syslog-ng 327
로그 수집 331
로그서버의 역할과 구성 333
정리 333
6장 서비스의 무대 뒤 …… 자율적인 인프라, 다이나믹한 시스템 지향
6.1 Hatena의 내부 336
Hatena의 인프라 336
확장성과 안정성 339
운용효율 향상 344
전원효율 - 리소스 이용률 향상 348
자율적인 인프라 지향 352
6.2 DSAS의 내부 353
DSAS란 353
시스템 구성 상세 361
DSAS의 미래 376
샘플코드 377
찾아보기 396