今ã¾ã§ãšã£ã¨ MySQL::Sandbox ã§è©¦ã—ã¦ããŸã‘ã©ã€ãµã¨æ€ã„ã¤ã„ãŸã®ã§Dockerイメージã«ã—ã¦ã¿ãŸã€‚
DockerãŒé¢ç™½ãã¦è‚心ã®MySQL Fabricを全然触ã£ã¦ãªã‹ã£ãŸæ°—ãŒã™ã‚‹ã‘ã©ã€ã„ã„ã®ã€‚
å–りåˆãˆãšMySQL Fabricã«å¿…è¦ãªè¦ç´ ã¨ã—ã¦ã¯ã€
* gtid-mode= ON
* server-idã¯ã‚«ãƒ–らãªã„よã†ã«
* Fabricノードã‹ã‚‰ãƒ•ァームã®ã‚µãƒ¼ãƒãƒ¼ã¸ã¯ãƒ•ルアクセスã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒå¿…è¦
ãらã„ã§ã—ょã†ã‹ã€‚
何å°è¿½åŠ ã§ä½œã£ã¦ã‚‚server-idãŒã‚«ãƒ–らãªã„よã†ã«ã™ã‚‹ãŸã‚ã«ã€server-idã¯IPアドレスã®ä¸‹2ãƒã‚¤ãƒˆã‹ã‚‰è‡ªå‹•生æˆã™ã‚‹ã‚ˆã†ã«mysqld_safeã«ãƒ‘ッãƒã‚’ã—ã¦ã‚りã¾ã™(--server-id=autoã§ã€server_id= 3ãƒã‚¤ãƒˆç›® * 256 + 4ãƒã‚¤ãƒˆç›®ã«è‡ªå‹•è¨å®šã™ã‚‹)
( ´-ï½€).oO(ã“れã€ä»Šã¾ã§èª°ã‚‚FRã¨ã‹ä¸Šã’ãªã‹ã£ãŸã®ã‹ãªã€‚。
Dockerfile見るã®ãŒä¸€ç•ªåˆ¤ã‚Šã‚„ã™ã„ã‚“ã§ã™ãŒã€
# cat Dockerfile
FROM yoku0825/cent66:init
MAINTAINER yoku0825
RUN yum install -y perl libaio
RUN rpm -i http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.22-1.linux_glibc2.5.x86_64.rpm
RUN rpm -i http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm
ADD ./mysqld_safe.patch /root/mysqld_safe.patch
RUN patch /usr/bin/mysqld_safe /root/mysqld_safe.patch
ADD ./my.cnf /etc/my.cnf
ADD ./init_mysql.sh /root/init_mysql.sh
RUN bash /root/init_mysql.sh
EXPOSE 3306
CMD /etc/init.d/mysql start && tail -f /dev/null
クライアント(MySQL Fabric用ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œã£ãŸã‚Šã™ã‚‹ã®ã«ä½¿ã†)ã¨ã‚µãƒ¼ãƒãƒ¼ã ã‘rpmã§çªã£è¾¼ã‚“ã§ã€mysqld_safeã«ãƒ‘ッãƒå½“ã¦ã¦ã€MySQLã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ä½œæˆã¯ã‚·ã‚§ãƒ«ã‚¹ã‚¯ãƒªãƒ—ãƒˆã§æŠ¼ã—込んã§ã€ã¨ã„ã†ã®ãŒã“れã ã‘ã§æ›¸ã‘ã¾ã—ãŸã€‚楽ãƒãƒ³ã€‚
# docker run -d -h fabric1 --name fabric1 fabric_aware_5622
da51ddad4e26f228435b60e2b2ec6c1dc465438b640575f232691b07affaeb4d
# docker run -d -h fabric2 --name fabric2 fabric_aware_5622
fd84f396f8fbcf688db6ca689b10f1d8bccb6dcc12fac3eb0c82a2639a23168f
# docker run -d -h fabric3 --name fabric3 fabric_aware_5622
8f5bc6199cb699048194bd1aff92d6ed0e8caad406e1a222f4e908fe8478509c
# docker inspect -f "{{.Name}}, {{.Config.Hostname}}, {{.NetworkSettings.IPAddress}}" $(docker ps | grep -v "^CONTAINER" | awk '{print $1}')
/fabric3, fabric3, 172.17.0.54
/fabric2, fabric2, 172.17.0.53
/fabric1, fabric1, 172.17.0.52
docker runã§ãƒ‰ã‚«ãƒ‰ã‚«ä¸Šã’ã¦ã€
$ mysqlfabric group create my_docker_fabric
$ mysqlfabric group add my_docker_fabric 172.17.0.52
$ mysqlfabric group add my_docker_fabric 172.17.0.53
$ mysqlfabric group add my_docker_fabric 172.17.0.54
$ mysqlfabric group promote my_docker_fabric
$ mysqlfabric group lookup_servers my_docker_fabric
Fabric UUID: 5ca1ab1e-a007-feed-f00d-cab3fe13249e
Time-To-Live: 1
server_uuid address status mode weight
------------------------------------ ----------- --------- ---------- ------
b9d7c753-86a3-11e4-b627-aa6edb94a664 172.17.0.52 SECONDARY READ_ONLY 1.0
bd269d22-86a3-11e4-b627-e6e3a6deb92c 172.17.0.53 SECONDARY READ_ONLY 1.0
bff11b23-86a3-11e4-b627-a6df24859725 172.17.0.54 PRIMARY READ_WRITE 1.0
ã“れã ã‘ã§ç°¡å˜ã«èª°ã§ã‚‚MySQL Fabricを試ã›ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸã€‚。ã¨ã€ã„ã„ãªã€‚
ホストãƒãƒ¼ãƒ ã¨IPアドレスã®ç´ä»˜ã‘ã‚’Dockerã®ãƒ›ã‚¹ãƒˆå´ã«ãªã‚“ã‹æŒãŸã›ã‚ˆã†ã‹ã—ら(mysqlfabricã¨ãƒãƒƒã‚ングストアã¯Dockerã®ãƒ›ã‚¹ãƒˆã«ã„る想定)
ã“れã§tcpdumpãŒè¦‹ã‚„ã™ããªã‚‹ï¼
Dockerfileã¯Githubã«ã€‚
Docker Hubã ã¨ã“ã“。yoku0825/cent66:fabric_aware_5622ã£ã¦ã„ã†ã‚¿ã‚°ã®ãŒãã†ã§ã™ã€‚
Have fun!
ã€2014/12/19 18:40】
ã“ã®ã‚ãŸã‚Šã®mysqlfabric group create/add を自動ã§ã‚„るよã†ãªã‚¹ã‚¯ãƒªãƒ—トも書ã„ãŸã€‚
http://yoku0825.blogspot.jp/2014/12/dockermysql-fabric.html
PlanetMySQL Voting: Vote UP / Vote DOWN