亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 14651 | 回復(fù): 1
打印 上一主題 下一主題

MySQL Cluster 7.0 +LVS 構(gòu)建高可用環(huán)境 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-06-11 14:45 |只看該作者 |倒序?yàn)g覽


1、前言
隨著數(shù)據(jù)量規(guī)模的擴(kuò)大,企業(yè)對(duì) MySQL 的要求就不僅僅是能用了,也在尋求各種高可用方案。以前我們的大部分高可用方案其實(shí)還存在一定缺陷,例如 MySQL Replication 方案,Master 是否存活檢測(cè)需要一定時(shí)間,而和 Slave 的切換也需要時(shí)間,因此其高可用程度較大依賴監(jiān)控軟件或自動(dòng)化管理工具。而早先的 MySQL Cluster 實(shí)在不能令人滿意,性能差的不行,也讓我們的期待一次次落空。本次 MySQL Cluster 7.0 的推出,終于實(shí)現(xiàn)了質(zhì)的飛躍,性能上得到了很大提高。MySQL Cluster 7.0 新特性主要體現(xiàn)在以下幾個(gè)方面:
  • 數(shù)據(jù)節(jié)點(diǎn)多線程
  • 可以在線增加節(jié)點(diǎn)
  • 大記錄存取改進(jìn)
  • 支持windows平臺(tái)
    本身MySQL Cluster已經(jīng)實(shí)現(xiàn)了高可用,不過由于SQL節(jié)點(diǎn)無法對(duì)外部負(fù)載均衡,因此我們采用 LVS 來實(shí)現(xiàn)這一需求。
    2、安裝
    環(huán)境描述:
    內(nèi)核:2.6.9-78.0.17.ELsmp
    硬件:DELL 2950, 146G 15K RPM SAS * 6(raid 1+0), 8G Ram
    各個(gè)節(jié)點(diǎn)描述:
    IP
    描述
    192.168.0.2
    ndb mgm node
    192.168.0.3
    data node1, sql node 1, LVS DR Server
    192.168.0.4
    data node2, sql node 2
    192.168.0.5
    data node3, sql node 3
    192.168.0.6
    data node4, sql node 4
    192.168.0.7
    sql node 5
    192.168.0.8
    sql node 6
    192.168.0.9
    sql node 7
    192.168.0.10
    sql node 8
    是這樣安排這些服務(wù)器的,192.168.0.2 作為 MySQL Cluster 的管理節(jié)點(diǎn),2 ~ 6 既做數(shù)據(jù)節(jié)點(diǎn)(DATA node),也做SQL節(jié)點(diǎn)(SQL node),7 ~ 10 也做SQL節(jié)點(diǎn)。LVS采用 VS/DR 的模式,因此把 192.168.0.2 也同時(shí)作為 LVS 的 DR Server。
    分配好機(jī)器,接下來就是安裝響應(yīng)的軟件包了。
    2.1 LVS 安裝、配置
    老實(shí)說,我對(duì)LVS并不十分在行,以前折騰過一次,差點(diǎn)快崩潰了,后來才發(fā)現(xiàn)是我下載的版本太高了,沒想到這次也是這樣 :(,白折騰了1天。其實(shí)過程比較簡(jiǎn)單,只要下載的版本能對(duì)的上就快了。
    在這里,我下載的是源碼rpm包,因此需要用rpmbuild編譯一次。
    [yejr@imysql.cn ~]# rpm -ivhU ~/kernel-2.6.9-78.0.17.EL.src.rpm
    [yejr@imysql.cn ~]# cd /usr/src/redhat/SPECS
    [yejr@imysql.cn ~]# rpmbuild -bp kernel-2.6.spec #解開源碼包,打上各種pache
    [yejr@imysql.cn ~]# rpm -ivhU ~/ipvsadm-1.24-5.src.rpm #安裝ipvsadm的源碼包
    [yejr@imysql.cn SPECS]# ls
    ipvsadm.spec  kernel-2.6.spec
    #需要做一下鏈接,編譯ipvsadm時(shí)用得著
    [yejr@imysql.cn SPECS]# ln -s /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 /usr/src/linux
    [yejr@imysql.cn SPECS]# rpm -bb ipvsadm.spec #編譯出ipvsadm的rpm包
    [yejr@imysql.cn SPECS]# ls -l /usr/src/redhat/RPMS/x86_64/
    total 36
    -rw-r--r--  1 root root 30941 May  4 18:06 ipvsadm-1.24-5.x86_64.rpm
    -rw-r--r--  1 root root  2968 May  4 18:06 ipvsadm-debuginfo-1.24-5.x86_64.rpm
    [yejr@imysql.cn ~]# rpm -ivhU /usr/src/redhat/RPMS/x86_64/ipvsadm-1.24-5.x86_64.rpm
    看到了吧,其實(shí)很簡(jiǎn)單。網(wǎng)上的有些資料說要把 ipvsadm.spec 中的 Copyright 這個(gè) Tag 改成 License,可能是因?yàn)榘姹据^老,我用的這個(gè)版本就不需要這樣。
    接下來就是加載 ip_vs 模塊,然后開始做 LVS DR 轉(zhuǎn)發(fā)了。
    [yejr@imysql.cn ~]# /sbin/modprobe ip_vs
    [yejr@imysql.cn ~]# lsmod | grep ip_vs
    ip_vs                 103169  3 ip_vs_rr
    直接編輯 /etc/sysconfig/ipvsadm 文件:
    [yejr@imysql.cn ~]# cat /etc/sysconfig/ipvsadm
    -C
    -A -t lvs_vip:mysql -s rr
    -a -t lvs_vip:mysql -r ndb_data_node_1:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_data_node_2:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_data_node_3:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_data_node_4:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_sql_node_1:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_sql_node_2:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_sql_node_3:mysql -g -w 1
    -a -t lvs_vip:mysql -r ndb_sql_node_4:mysql -g -w 1
    保存退出。上面顯示的是 hostname 的格式,因?yàn)槲叶荚?/etc/hosts 里設(shè)置各自對(duì)應(yīng)的 hostname 了。
    然后就是在 DR Server 上綁定 vip,然后打開 ip_forward,啟動(dòng) ipvsadm,LVS 就可以開始工作了。
    [yejr@imysql.cn ~]# echo 1 > /proc/sys/net/ipv4/ip_forward #修改內(nèi)核,打開轉(zhuǎn)發(fā)
    [yejr@imysql.cn ~]# /sbin/ifconfig eth0:0 192.168.0.11 netmask 255.255.255.0 #綁定vip
    [yejr@imysql.cn ~]# /etc/init.d/ipvsadm start #啟動(dòng)ipvsadm
    [yejr@imysql.cn ~]# ipvsadm -L #查看列表
    ipvsadm -L
    IP Virtual Server version 1.2.0 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
    -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  lvs_vip:mysql rr
    -> gs_ndb_sql_node_1:mysql      Route   1      0          0
    -> gs_ndb_sql_node_2:mysql      Route   1      0          0
    -> gs_ndb_sql_node_3:mysql      Route   1      0          0
    -> gs_ndb_sql_node_4:mysql      Route   1      0          0
    -> gs_ndb_data_node_1:mysql     Route   1      0          0
    -> gs_ndb_data_node_2:mysql     Route   1      0          0
    -> gs_ndb_data_node_3:mysql     Route   1      0          0
    -> gs_ndb_data_node_4:mysql     Route   1      0          0
    [yejr@imysql.cn ~]# lsmod | ip_vs #查看已加載模塊
    lsmod | grep ip_vs
    ip_vs_rr                3649  1
    ip_vs                 103169  3 ip_vs_rr
    DR Server 上設(shè)置完后,再在 Real Server 上綁定 vip,然后測(cè)試,沒問題的話,就可以用了。
    [yejr@imysql.cn ~]# /sbin/ifconfig lo:0 192.168.0.11 netmask 255.255.255.255 broadcast 192.168.0.11
    2.2 MySQL Cluster安裝
    MySQL Cluster的安裝重點(diǎn)在于管理節(jié)點(diǎn)的配置文件,只要把配置文件設(shè)置好了,其他的就很快了。我在這里是直接用 rpm 包安裝的,因?yàn)橄螺d整個(gè)預(yù)編譯好的 tar.gz 文件實(shí)在太大了,這點(diǎn)上 MySQL 是越來越臃腫了 :(
    [yejr@imysql.cn ~]# cat /home/mysql/config.ini
    [TCP DEFAULT]
    SendBufferMemory=2M
    ReceiveBufferMemory=2M
    [NDB_MGMD DEFAULT]
    PortNumber=1186
    Datadir=/home/mysql/
    [NDB_MGMD]
    id=1
    Datadir=/home/mysql/
    Hostname=192.168.221.2
    [NDBD DEFAULT]
    NoOfReplicas=2
    Datadir=/home/mysql/
    DataMemory=2048M
    IndexMemory=1024M
    LockPagesInMainMemory=1
    MaxNoOfConcurrentOperations=100000
    StringMemory=25
    MaxNoOfTables=4096
    MaxNoOfOrderedIndexes=2048
    MaxNoOfUniqueHashIndexes=512
    MaxNoOfAttributes=24576
    DiskCheckpointSpeedInRestart=100M
    FragmentLogFileSize=256M
    InitFragmentLogFiles=FULL
    NoOfFragmentLogFiles=6
    RedoBuffer=32M
    TimeBetweenLocalCheckpoints=20
    TimeBetweenGlobalCheckpoints=1000
    TimeBetweenEpochs=100
    MemReportFrequency=30
    BackupReportFrequency=10
    ### Params for setting logging
    LogLevelStartup=15
    LogLevelShutdown=15
    LogLevelCheckpoint=8
    LogLevelNodeRestart=15
    ### Params for increasing Disk throughput
    BackupMaxWriteSize=1M
    BackupDataBufferSize=16M
    BackupLogBufferSize=4M
    BackupMemory=20M
    #Reports indicates that odirect=1 can cause io errors (os err code 5) on some systems. You must test.
    #ODirect=1
    ### Watchdog
    TimeBetweenWatchdogCheckInitial=30000
    ### TransactionInactiveTimeout  - should be enabled in Production
    #TransactionInactiveTimeout=30000
    ### CGE 6.3 - REALTIME EXTENSIONS
    #RealTimeScheduler=1
    #SchedulerExecutionTimer=80
    #SchedulerSpinTimer=40
    ### DISK DATA
    #SharedGlobalMemory=384M
    #read my blog how to set this:
    #DiskPageBufferMemory=3072M
    ### Multithreading
    MaxNoOfExecutionThreads=8
    [NDBD]
    id=2
    Datadir=/home/mysql/
    Hostname=192.168.221.3
    #LockExecuteThreadToCPU=X
    #LockMaintThreadsToCPU=Y
    [NDBD]
    id=3
    Datadir=/home/mysql/
    Hostname=192.168.221.4
    #LockExecuteThreadToCPU=X
    #LockMaintThreadsToCPU=Y
    [NDBD]
    id=4
    Datadir=/home/mysql/
    Hostname=192.168.221.5
    #LockExecuteThreadToCPU=X
    #LockMaintThreadsToCPU=Y
    [NDBD]
    id=5
    Datadir=/home/mysql/
    Hostname=192.168.221.6
    #LockExecuteThreadToCPU=X
    #LockMaintThreadsToCPU=Y
    [MYSQLD]
    id=6
    Hostname=192.168.221.3
    [MYSQLD]
    id=7
    Hostname=192.168.221.4
    [MYSQLD]
    id=8
    Hostname=192.168.221.5
    [MYSQLD]
    id=9
    Hostname=192.168.221.6
    [MYSQLD]
    id=10
    Hostname=192.168.221.7
    [MYSQLD]
    id=11
    Hostname=192.168.221.8
    [MYSQLD]
    id=12
    Hostname=192.168.221.9
    [MYSQLD]
    id=13
    Hostname=192.168.221.10
    然后啟動(dòng) ndb_mgmd 進(jìn)程:
    [yejr@imysql.cn ~]# /usr/sbin/ndb_mgmd -f /home/mysql/config.ini --configdir=/home/mysql/
    如果是修改了配置文件里的某些參數(shù),則需要先關(guān)閉 ndb_mgmd 進(jìn)程,然后重新啟動(dòng),不過必須加上 --reload 選項(xiàng),因?yàn)?7.0 版本中,會(huì)把配置文件放在 cache 里,如果不注意到這點(diǎn),可能會(huì)被搞得莫名其妙的。
    [yejr@imysql.cn ~]# /usr/sbin/ndb_mgmd -f /home/mysql/config.ini --configdir=/home/mysql/ --reload
    然后在數(shù)據(jù)節(jié)點(diǎn)上啟動(dòng) ndbd 進(jìn)程:
    [yejr@imysql.cn ~]# /usr/sbin/ndbd --initial
    首次啟動(dòng),需要加上 --initial 選項(xiàng),其后的啟動(dòng)后就不需要了。
    最后,修改SQL節(jié)點(diǎn)上的配置文件 my.cnf,然后啟動(dòng) mysqld 進(jìn)程:
    [yejr@imysql.cn ~]# cat /etc/my.cnf
    #my.cnf
    [mysql_cluster]
    ndb-connectstring="192.168.221.2:1186"
    [MYSQLD]
    ......
    ndb-cluster-connection-pool=1
    ndbcluster
    ndb-connectstring="192.168.221.2:1186"
    ndb-force-send=1
    ndb-use-exact-count=0
    ndb-extra-logging=1
    ndb-autoincrement-prefetch-sz=256
    engine-condition-pushdown=1
    ......
    [yejr@imysql.cn ~]# /etc/init.d/mysql start
    [yejr@imysql.cn ~]# mysqladmin pr
    +------+-------------+-----------+----+---------+------+-----------------------------------+------------------+
    | Id   | User        | Host      | db | Command | Time | State                             | Info             |
    +------+-------------+-----------+----+---------+------+-----------------------------------+------------------+
    | 1    | system user |           |    | Daemon  | 0    | Waiting for event from ndbcluster |                  |
    | 1579 | root        | localhost |    | Query   | 0    |                                   | show processlist |
    +------+-------------+-----------+----+---------+------+-----------------------------------+------------------+
    在管理節(jié)點(diǎn)上看下 cluster 的狀態(tài):
    [yejr@imysql.cn ~]# ndb_mgm
    -- NDB Cluster -- Management Client --
    ndb_mgm> show
    Connected to Management Server at: localhost:1186
    Cluster Configuration
    ---------------------
    [ndbd(NDB)]     4 node(s)
    id=2    @192.168.221.3  (mysql-5.1.32 ndb-7.0.5, Nodegroup: 0, Master)
    id=3    @192.168.221.4  (mysql-5.1.32 ndb-7.0.5, Nodegroup: 0)
    id=4    @192.168.221.5  (mysql-5.1.32 ndb-7.0.5, Nodegroup: 1)
    id=5    @192.168.221.6  (mysql-5.1.32 ndb-7.0.5, Nodegroup: 1)
    [ndb_mgmd(MGM)] 1 node(s)
    id=1    @192.168.221.2  (mysql-5.1.32 ndb-7.0.5)
    [mysqld(API)]   10 node(s)
    id=6    @192.168.221.3  (mysql-5.1.32 ndb-7.0.5)
    id=7    @192.168.221.4  (mysql-5.1.32 ndb-7.0.5)
    id=8    @192.168.221.5  (mysql-5.1.32 ndb-7.0.5)
    id=9    @192.168.221.6  (mysql-5.1.32 ndb-7.0.5)
    id=10   @192.168.221.7  (mysql-5.1.32 ndb-7.0.5)
    id=13   @192.168.221.8  (mysql-5.1.32 ndb-7.0.5)
    id=14   @192.168.221.9  (mysql-5.1.32 ndb-7.0.5)
    id=15   @192.168.221.10  (mysql-5.1.32 ndb-7.0.5)
    ndb_mgm> exit
    可以看到,一切正常。
    3、測(cè)試
    我們主要進(jìn)行一下對(duì)比測(cè)試,看看新版本的 ndbcluster 引擎相對(duì) MyISAM 和 InnoDB 到底區(qū)別多大。
    3.1 mysqlslap測(cè)試結(jié)果

    縱坐標(biāo)是總共運(yùn)行時(shí)間。
    mysqlslap完整執(zhí)行參數(shù)類似下面:
    mysqlslap -hlocalhost -uroot --engine=myisam --auto-generate-sql-write-number=100000 --auto-generate-sql-guid-primary \
    --concurrency=50,100,200 --number-of-queries=500000 --iterations=2 --number-char-cols=10 --number-int-cols=10 \
    --auto-generate-sql --create-schema=ndb --auto-generate-sql-load-type=mixed
    3.2 sysbench測(cè)試結(jié)果

    縱坐標(biāo)是每秒運(yùn)行的事務(wù)數(shù)。
    sysbench完整執(zhí)行參數(shù)類似下面:
    sysbench --mysql-user=root --test=oltp --mysql-host=localhost --oltp-test-mode=complex \
    --mysql-table-engine=ndbcluster --oltp-table-size=10000000 --mysql-db=ndb --oltp-table-name=mdb_1kw \
    --num-threads=200 --max-requests=500000 run
    從上面的測(cè)試結(jié)果我們也可以看到,單獨(dú)的mysqld實(shí)例下,MyISAM適合并發(fā)很小的業(yè)務(wù),InnoDB適合類似連接池模式下的高并發(fā)業(yè)務(wù),不適合非常大并發(fā)的情景,而采用了LVS后的ndbcluster則是真正的適合高并發(fā)環(huán)境,盡管其性能相對(duì)InnoDB來說不是太好,不過比以往版本也已經(jīng)提升了很多,用于正式生產(chǎn)環(huán)境的時(shí)候真是指日可待了。


    本文來自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u2/65250/showart_1961887.html
  • 論壇徽章:
    1
    丑牛
日期:2013-11-10 11:52:10
    2 [報(bào)告]
    發(fā)表于 2013-11-10 12:24 |只看該作者
    生產(chǎn)環(huán)境下用mysql cluster是不穩(wěn)定定、維護(hù)也很苦難。
    您需要登錄后才可以回帖 登錄 | 注冊(cè)

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報(bào)專區(qū)
    中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP