11월 8일
첫날배운거부터 다시복습
리눅스 : pwd, thuch, mv, mkdir, rm -rf, cd, ls, vi,
ps -ef, netstat -anlp, systemctl, yum
(netstat -anlp:프로그램이사용하는포트번호확인명령어)
절대경로 : 무조건 /부터 전부 다 입력, / = c드라이브
상대경로 : 현재 위치를 기준으로 입력(pwd로 현재위치 무조건확인!!)
!!!중요!!!
<네트워크>
클라이언트 : 서버가 제공하는 서비스를 이용하는 프로그램
서버 : 서비스를 제공하는 프로그램
웹 서버 : 서버 컴퓨터에 저장된 파일을 다운로드할 수 있는 서비스를 제공
DB 서버 : 데이터를 안전하게 테이블(표) 형태로 CRUD할 수 있는 서비스를 제공
DB 클라이언트 프로그램 : workbench, mysql 등을 사용해서 SQL로 데이터를 CRUD하는 프로그램
SQL - DDL : CREATE, ALTER, DROP
DML : SELECT, INSERT, UPDATE, DELETE
DCL : GRANT, REVOKE
앞으로 배울 것들
GIT
자바
자료구조
알고리즘
스프링
MSA
html, css, js
vue.js
도커
K8S
Ansible
젠킨스
리눅스 2대 준비(리눅스1, 리눅스2)
ip설정
mysql-server 설치
방화벽끄기
1) 네트워크 방화벽 설정
systemctl stop firewalld
2) 로컬 방화벽
setenforce 0
mysql 초기설정
리눅스1(master) 리눅스2(slave) 설정
리눅스2(master) 리눅스1(slave) 설정
리눅스 1대 준비(리눅스3)
ip설정
방화벽끄기
1) 네트워크 방화벽 설정
systemctl stop firewalld
2) 로컬 방화벽
setenforce 0
DR
미러 A-A
핫 A-S
웜
쿨
haproxy 설정
1) 설치
yum install haproxy
2) 설정
vi /etc/haproxy/haproxy.cfg
#set nu 하면 번호나옴
63번 줄 다음 내용은 전부 삭제 후
마지막 줄에 추가
listen stats # haproxy 모니터링 페이지 설정
bind :9000 # 웹브라우저를 이용해서 9000포트로 접속하면
stats enable # haproxy 모니터링 페이지로 접속 됨
stats realm Haproxy\ Statistics # http://[서버IP]:9000/haproxy_stats
stats uri /haproxy_stats
3) 서비스 재시작
systemctl restart haproxy // 에러 발생, 리눅스는 기본적으로
----------# 여기까지는 리눅스 3에 설정---------
2) haproxy 설정--(다시 리눅스3에설정)
vi /etc/haproxy/haproxy.cfg
마지막 줄에 추가
listen mysqld-ha
bind :3306
mode tcp
balance roundrobin
option mysql-check user haproxy
server mysqld1 10.10.10.210:3306 check
server mysqld2 10.10.10.110:3306 check
#그다음에 마스터나 슬레이브에 USE mysql
2) workbench에서 접속 테스트
hostname : [haperoxy가 설치된 컴퓨터의 IP주소]
username : [위에서 생성한 계정]
접속 후
show variables LIKE '%server_id%'; 실행해서 server-id를 확인, 접속할 때마다 server-id가 바껴야 정상
#Keepalived란?
'로드밸런싱'과 '고가용성(HA)'를 제공하는 프레임워크.
로드밸런싱은 L4 수준의 로드 밸런싱(HAProxy와 함께 사용하면, L7 로드밸런싱도 가능)
고가용성(HA)은 VRRP 프로토콜을 사용한 VIP로 고가용성이 가능
#Keepalived를 이용한 HAProxy의 HA 구성
가상 IP주소(VIP)를 공유하는 Active HAProxy 서버와 Standby HAProxy서버가
heartbeat을 주고 받으면서 서로 정상적인 동작하는지 여부를 확인
Active 상태의 서버에 문제가 발생하면, Standby HAProxy가 active 상태로 변경되면서
기존의 active HAProxy의 가상 IP주소를 가져오면서 서비스가 무정지 상태를 유지
Active - Standby ---(마스터에하나, 슬레이브에 남은 하나)
Active
1) keepalived 설치 및 설정
yum install -y keepalived
vi /etc/keepalived/keepalived.conf
14번 라인 주석처리
18번 라인 밑으로 전부 삭제
#밑에줄 한번에 지우려면 커서를 지우려는 줄 밑에 놓고 d+shift g, 잘못지워서 복구하려면 u
vrrp_script chk_mysql {
script "pidof mysqld"
interval 2 # every 2 seconds
weight 2
}
vrrp_instance VI_1 {
interface ens160
state MASTER
virtual_router_id 123 # Standby랑 맞춰줘야 하는 값
unicast_src_ip 192.168.100.20 # Active IP
unicast_peer {
192.168.100.30 # Standby IP
}
priority 102 # Standby보다 Active가 높아야 하는 값
track_script {
chk_mysql
}
virtual_ipaddress {
192.168.100.100/24 dev ens160
}
}
systemctl restart keepalived
Standy
1) keepalived 설치 및 설정
yum install -y keepalived
vi /etc/keepalived/keepalived.conf
14번 라인 주석처리
18번 라인 밑으로 전부 삭제
vrrp_script chk_mysql {
script "pidof mysqld"
interval 2 # every 2 seconds
weight 2
}
vrrp_instance VI_1 {
interface ens160
state BACKUP
virtual_router_id 123 # Standby랑 맞춰줘야 하는 값
unicast_src_ip 192.168.100.30 # Standby IP
unicast_peer {
192.168.100.20 # Active IP
}
priority 101 # Standby보다 Active가 높아야 하는 값
track_script {
chk_mysql
}
virtual_ipaddress {
192.168.100.100/24 dev ens160
}
}
systemctl restart keepalived
DB 서버 Failover 테스트
1) workbench에서 접속 테스트
hostname : [keepalived에서 VIP]
username : [생성한 계정]
접속 후
show variables LIKE '%server_id%'; 실행해서 server-id를 확인, Active 서버를 끄고 수 초 후 다시 접속