티스토리 뷰
Galera Cluster for MariaDB
갈레라 클러스터 설치 매뉴얼입니다.
참조 바랍니다.
Maria DB는 MySQL Cluster가 아닌 Galera Cluster를 기본으로 합니다.
Galera는 “어떤 클러스터 node에도 쓰고 읽고 할 수 있다는 장점이 있는 진정한 클러스터” 라고 합니다.
참고 : galera cluster는 mininum 3 Node의 서버로 운영이 됩니다.
Minimal cluster size
In order to avoid a split-brain condition, the minimum recommended number of nodes in a cluster is 3. Blocking state transfer is yet another reason to require a minimum of 3 nodes in order to enjoy service availability in case one of the members fails and needs to be restarted. While two of the members will be engaged in state transfer, the remaining member(s) will be able to keep on serving client requests.
설치된 서버에 기본적으로 갈레라에서 사용할 포트를 오픈합니다.
Linux는 시스템의 속성을 바꾸는 명령은 superuser권한을 획득해야 합니다.
일일이 번거로우니, 풀고 시작합니다.(Ubuntu 14.04 LTS기준입니다)
Sudo -s
방화벽 구동
ufw enable
ssh접속 허용
ufw allow ssh
우분투업데이트
apt-get update
우분투 업그레이드
apt-get upgrade
ipv6 해제
vi /etc/sysctl.conf , 아래 내용을 추가
※ ipv6해제는 하지 않아도 되나, 향후 Log분석시 ipv4와 혼란스럽기 때문에 미리 Disable합니다.
#disable ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
정보 업데이트
sysctl -p
클러스터용 방화벽 오픈
TCP : 4567 (group comm)
TCP : 4568 (IST)
TCP : 4444 (rsync)
TCP : 3306 (MariaDB)
TCP : 9200 (http health check)
TCP : 22 (ssh) clustercontrol passwordless ssh
ICMP
호스트 방화벽(ufw) 포트 열기(한꺼번에 연다)
ufw allow 4567 ; ufw allow 4568 ; ufw allow 4444 ; ufw allow 3306 ; ufw allow 9200 ; ufw allow 22
리포지토리 업데이트(MariaDB 5.5)
※ https://downloads.mariadb.org/mariadb/repositories/#mirror=kaist 접속하셔서 버전별로 설치 가능합니다.
apt-get install python-software-properties
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu precise main'
Maria db 10.0
sudo apt-get install software-properties-common
sudo apt-key adv
--recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/10.0/ubuntu trusty main'
apt-get update
마리아db 갈레라클러스터 패키지 설치
apt-get install -y rsync galera mariadb-galera-server
(설치중 DB의 root 패스워드를 물어보며, 입력합니다)
db 데몬 죽이기
service mysql stop
클러스터 파일 생성
vi /etc/mysql/conf.d/cluster.cnf
(아래의 내용을 복사하여 붙여넣기)
------------------------------------------------------
[mysqld]
query_cache_size=0
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_type=0
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_provider=/usr/lib/galera/libgalera_smm.so
#wsrep_provider_options="gcache.size=32G"
# Galera Cluster Configuration
wsrep_cluster_name="test_cluster"
wsrep_cluster_address="gcomm://192.168.29.10,192.168.29.11,192.168.49.10"
# Galera Synchronization Congifuration
wsrep_sst_method=rsync
#wsrep_sst_auth=user:pass
# Galera Node Configuration
wsrep_node_address="192.168.29.10"
wsrep_node_name="ERP-DB-SJ-01"
-------------------------------------------------------------------
gcomm://192.168.29.10,192.168.29.11,192.168.49.10 ,
wsrep_node_address="192.168.29.10"
wsrep_node_name=" ERP-DB-SJ-01"
이들 3부분을 각 노드 정보에 맞게 수정해야 합니다.
wsrep_node_address="192.168.29.10"는 해당 호스트의 IP, name은 호스트 네임
gcomm://192.168.29.10,192.168.29.11,192.168.49.10는 클러스터를 구성하는 노드 전체의 IP
my.cnf 수정 : 한글코드 관련해서 반드시 추가한다.
vi /etc/mysql/my.cnf
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci
character_set_server = utf8
collation_server = utf8_general_ci
**************My.cnf참조*************
- my.cnf 샘플 : 참조만 할 것. 우선은 한글코드 제외하고는 디폴트로 운영.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=utf8
[mysqld_safe]
nice = 0
socket = /var/run/mysqld/mysqld.sock
[mysqld]
basedir = /usr
bind-address = 0.0.0.0
binlog_format = ROW
character_set_server = utf8
collation_server = utf8_general_ci
datadir = /var/lib/mysql
default-storage-engine = InnoDB
expire_logs_days = 10
innodb_autoinc_lock_mode = 2
innodb_buffer_pool_size = 256M
innodb_doublewrite = 1
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 60
innodb_locks_unsafe_for_binlog = 1
innodb_stats_on_metadata = 0
key_buffer = 256M
lc-messages-dir = /usr/share/mysql
lock_wait_timeout = 300
max_allowed_packet = 128M
max_binlog_size = 128M
max_connections = 64
myisam-recover = BACKUP
myisam_sort_buffer_size = 64M
net_buffer_length = 8K
open-files-limit = 65535
pid-file = /var/run/mysqld/mysqld.pid
port = 3306
query_cache_limit = 8M
query_cache_size = 16M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
skip-external-locking
socket = /var/run/mysqld/mysqld.sock
sort_buffer_size = 16M
table_cache = 2M
table_definition_cache = 65535
table_open_cache = 65535
thread_cache_size = 8
thread_concurrency = 8
tmpdir = /tmp
user = mysql
character-set-server = utf8
collation-server = utf8_general_ci
character_set_server = utf8
collation_server = utf8_general_ci
[mysqldump]
max_allowed_packet = 16M
quick
quote-names
[mysql]
[isamchk]
!includedir /etc/mysql/conf.d/
key_buffer = 256M
read_buffer = 16M
sort_buffer_size = 256M
write_buffer = 16M
EOF
8. 1번째 노드의 /etc/mysql/debian.cnf 를 나머지 노드에 복사
- scp명령을 이용해서 복사를 해도 된다.(원격 서버 → 로컬 서버로 파일 전송)
scp -P 22 seungjin@192.168.29.10:/etc/mysql/debian.cnf /etc/mysql/
※권한이 없으면 츄마드로 읽기 권한을 넣어준다.
9. 1번째 노드의 /etc/mysql/conf.d/clustr.cnf 를 나머지 노드에 복사
- 각 노드들에게 1번째 노드의 /etc/mysql/conf.d/cluster.cnf 를 나머지 노드에 복사해도 된다.
scp -P 22 seungjin@192.168.29.10:/etc/mysql/conf.d/cluster.cnf /etc/mysql/conf.d/
- 1번째 노드에서 : 처음 클러스터를 생성할 때만 첫번째 노드에서 이렇게 수행. 이후에는 아님.
service mysql start --wsrep-new-cluster
- 나머지 노드 수행
service mysql start
- 노드 전체가 죽은 상태에서 시작할 경우(맨처음 설치시 이부분으로 구동)
첫번째 노드에서
sudo service mysql start --wsrep_cluster_address=gcomm://
- Mysql접속해서 아래의 IP 허용
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.29.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
- DB 생성
CREATE DATABASE SJDB CHARACTER SET utf8;
create user 'sjuser'@'192.168.29.10' IDENTIFIED BY 'Seungjin007#^(';
grant all on SJDB.* to'sjuser'@'192.168.29.10';
flush privileges;
-Database 생성 확인
show databases;
- DB 파일 검사 명령
mysqlcheck --check-upgrade --all-databases --auto-repair -u root -p
- Total
- Today
- Yesterday
- Virtual Hive
- https://byounghee.me
- ESX Virtualization
- Yellow Bricks
- vsphere-land.com
- vcdx133.com
- Virten.net
- Beyond IT
- Terence Luk
- myvirtualcloud.net
- thatsmyview.net
- http://buildvirtual.net/
- IOPS 및 기타
- VvirtuallyGhetto
- DigitalOcean
- vmexpo.wordpress.com
- alexhunt86.wordpress.com
- www.boche.net
- vExpert_derekseaman
- VMware Blogs
- vExpert_vhojan.nl
- thevirtualhorizon.com
- Migration King
- Virtual Reality
- virtuallyboring
- Rehoboth.. 이곳에서 부터
- 아크몬드넷
- Lets dive into world of virtua…
- CormacHogan
- Error
- vsan
- esxi
- vSphere
- SSL
- Disk
- VCSA
- composer
- license
- VDI
- View
- increase
- Appliance
- vcenter
- vmtools
- DC
- server
- vm
- Linux
- Management
- ad
- vmotion
- windows 2016
- vdp
- esxcli
- backup
- Snapshot
- 복제
- VMware
- ubuntu
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |