$ wget http://www.linux-vs.org/software/kernel-2.6/ipvsadm-1.24.tar.gz $ tar zxf ipvsadm-1.24.tar.gz $ cd ipvsadm-1.24 $ make # make install5.1.5. Cấu hình load blance (LV1) Cho phép IP fowarding
# echo "1" > /proc/sys/net/ipv4/ip_forwardTạo virtual service cho LV server (qua phương thức round robin )
# ipvsadm -A -t 172.16.0.1:http -s rrĐối với dịch dịch vụ virtual trên , dùng các lệnh sau để cấu hình cho realserver
# ipvsadm -a -t 172.16.0.1:http -r 10.0.0.101:http -m # ipvsadm -a -t 172.16.0.1:http -r 10.0.0.102:http -mCó thể kiểm tra kết quả bằng lệnh
ipvsadm -LChỉnh default gateway tại máy LV1
route add -net default gw 10.0.0.1đến đây bạn đã cấu hình xong , để kiểm chứng những kết quả trên , bạn có thể request trực tiếp từ phía client đến địa chỉ http://172.16.0.1/ để xem kết quả các máy chủ có hoạt động đúng vai trò của chúng hay không . ----------------------------------------------------------- 5.2. Load blance bằng LVS / DR Phương thức xử lý cũng như cấu trúc của mô hình LVS/DR rất khác biệt so với mô hình LVS/NAT . như hình dưới ta có thể thấy được khi client yêu cầu đến máy chủ , LV1 sẽ trực không trực tiếp xử lý , thay vì đó sẽ chuyển nguyên cú request của client sang RealServer1 (RealServer2) xử lý , sau khi được realserver1 (realserver2) xử lý xong sẽ không chuyển về LV1 như mô hình LVS/NAT, thay vì đó realserver của mô hình LVS/DR sẽ tự động trả lời đến client mà không qua LV1. và một sự khác biệt lớn giữa LVS/NAT với LVS/DR là LVS/DR nằm chung network với các Realserver . phương thức xử lý theo thứ tự như sau 1) LVS nhận request của client 2) Chuyển request từ client sang RealServer, trong quá trình này , LV1 sẽ chỉ mang vai trò wwwect . 3) RealServer nhận được cú request của LV1 sẽ trực tiếp xử lý và trả lời đến client Từ các trình tự trên, khi ta có 2 Realserver , phía LV1 sẽ nhẹ hơn đáng kể ,bên cạnh đó các RealServer (1 , 2 ) sẽ phân tán các request từ phía client, từ đây chúng ta đã thực hiện được mô hình load blance một cách rất hiệu quả . 5.2.1. Định nghĩa LV1 – 172.16.0.100 (eth0) Virtual IP - 172.16.0.1(eth0:0) RealServer1 – 172.16.0.101 RealServer2 – 172.16.0.102 5.2.2. Mô hình thiết lập [img]http://hvaonline.net/hvaonlibmuht_gpj.76252_a9baf117b24df521d7ebbf48ff23eb3f/42/21/6002/daolpu/enilnoavh/ten.enilnoavh//:ptthkernel Cũng như LVS/NAT , trước tiên ta phải điều chỉnh các thông số của kernel để có thể sử dụng chức năng IP forwarding .
echo "1" > /proc/sys/net/ipv4/ip_forwardhoặc có thể điều chỉnh trong /etc/sysctl.conf . 5.2.4. Điều chỉnh network Ngoài việc điều chỉnh interface thực của LV1 (eth0) ta cũng phải thêm interface ảo cho LV1, vì mô hình LVS/DR yêu cầu ta phải tạo thêm virtual IP trên LV1, cách làm như sau .
# ifconfig eth0:0 172.16.0.1 netmask 255.255.255.0Điều chỉnh khi bạn khởi động máy có thể ghi vào như sau . File : /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0 IPADDR=172.16.0.1 NETMASK=255.255.255.0 ONBOOT=yes5.2.4.3. Khai báo / điều chỉnh RealServer Khai báo dịch vụ ảo cho LV1
LV1# ipvsadm -A -t 172.16.0.1:http -s rrbước kế tiếp là khai báo realserver
LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.101:http -m LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.102:http -m LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.103:http -mKiểm tra
LV1# ipvsadm -LĐiều chỉnh RealServer để có thể nhận được các gói từ LV1 .
RealServer1 # iptables –t nat –A PREROUTING –d 172.16.0.1 –p tcp –dport 80 –j REDIRECT –to-ports 80
RealServer2 # iptables –t nat –A PREROUTING –d 172.16.0.1 –p tcp –dport 80 –j REDIRECT –to-ports 80Đến đây bạn đã cấu hình xong LVS/DR , để kiểm chứng những kết quả trên , bạn có thể request trực tiếp từ phía client đến địa chỉ http://172.16.0.1/ để xem kết quả các máy chủ có hoạt động đúng vai trò của chúng hay không . còn tiếp ........ ]]>
Mình có chút thắc mắc là kĩ thuật tạo cluster với Linux Virtual Server ko biết có giúp chạy ứng dụng với khả năng chịu tải và chịu lỗi cao hay ko hay chỉ là hệ thống Cluster với kĩ khả năng tính toán đa luồng MultiThread và chỉ dùng để chạy các Application đa luồng ?LVS làm việc tại layer 4 để phân tán các cú request từ phía client, do đó từ bên ngoài sẽ thấy dàn máy này là 1 high-performance server . khi cấu hình hệ thống này ta sẽ có được các lợi điểm là nâng cao được performance , thêm server vào dễ dàng.
kĩ khả năng tính toán đa luồng MultiThread và chỉ dùng để chạy các Application đa luồng ?Tôi không hiểu câu hỏi này lắm , bạn có thể nói rõ hơn được không ? nếu tôi đoán không sai, phần này của bạn có liên quan đến khái niệm HPC ? ]]>
Mình có chút thắc mắc là kĩ thuật tạo cluster với Linux Virtual Server ko biết có giúp chạy ứng dụng với khả năng chịu tải và chịu lỗi cao hay ko hay chỉ là hệ thống Cluster với kĩ khả năng tính toán đa luồng MultiThread và chỉ dùng để chạy các Application đa luồng ?Giải pháp cho vấn đề này là rocks clusters - www.rocksclusters.org chứ không phải LVS. Rgds.]]>
Chủ đề này rất hay nhưng tiếc tôi chưa có điều kiện để thử vì policy của công ty tôi khá hạn hẹp . Thôi thìCác bước sau sẽ có hint về vấn đề của anh đã đưa ra, em sẽ cố gắng hoàn thiện các bước sau để có thể thoả mãn yêu cầu của anh hì hì :wink: ]]>Để hình thành được mô hình trên, bạn cần chuẩn bị 3 server có cấu hình tương đối gần nhau, tuy nhiên, dùng vmware hoặc các chương trình virtual pc vẫn có thể thực hiện được .Tôi ví dụ như thế này nhờ anh em tư vấn. Tôi muốn triển khai hệ thống Cluster này trên 3 server và mỗi server có vị trí địa lý khác nhau - 1 server ở Mỹ sử dụng IP tỉnh - 1 server ở Đức sử dụng IP tỉnh - 1 server ở VN sử dụng IP động Làm thế nào để tôi có thể làm cho cả 3 anh server có vị trí khác nhau này "bắt tay" được với nhau :cry: Nhìn vào mô hình của bro 777 ở trên thì yêu cầu của tôi khó trở thành hiện thực (eth0) :)) Nếu tôi muốn triển khai hệ thống Cluster ở 3 server có vị trí khác nhau thì tôi có thể xây dựng được hệ thống này hay không ? Nếu được thì tôi cần trang bị thêm những gì cho cả 3 server này ? Cũng sử dụng những phần mềm mà bro 777 mô tả ở trên hay còn trang bị những package nào nữa . Thanks anh em .
echo "1" > /proc/sys/net/ipv4/ip_forwardhoặc có thể điều chỉnh trong /etc/sysctl.conf 5.2.4. Điều chỉnh network Ngoài việc điều chỉnh interface thưự c của LV1 (eth0) ta cũng phải thêm interface ảo cho LV1,ngoài việc sử dụng ip thực (172.16.0.10x) , LVS/DR yêu cầu ta phải tạo thêm virtual IP trên LV1, cách làm như sau .
# ifconfig eth0:0 172.16.0.1 netmask 255.255.255.0Điều chỉnh khi bạn khởi động máy có thể ghi vào như sau . File : /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0 IPADDR=172.16.0.1 NETMASK=255.255.255.0 ONBOOT=yes5.2.4.3. Khai báo / điều chỉnh RealServer Khai báo dịch vụ ảo cho LV1 như sau
LV1# ipvsadm -A -t 172.16.0.1:http -s rrbước kế tiếp là khai báo realserver như sau
LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.101:http -m LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.102:http -m LV1# ipvsadm -a -t 172.16.0.1:http -r 172.16.0.103:http -mKiểm tra
LV1# ipvsadm -LĐiều chỉnh RealServer để có thể nhận được các gói từ LV1 .
RealServer1 # iptables –t nat –A PREROUTING –d 172.16.0.1 –p tcp –dport 80 –j REDIRECT –to-ports 80
RealServer2 # iptables –t nat –A PREROUTING –d 172.16.0.1 –p tcp –dport 80 –j REDIRECT –to-ports 80Đến đây bạn đã cấu hình xong LVS/DR , để kiểm chứng những kết quả trên , bạn có thể request trực tiếp từ phía client đến địa chỉ http://172.16.0.1/ để xem kết quả các máy chủ có hoạt động đúng vai trò của chúng hay không . còn tiếp ........ ]]>
# cd /usr/local/src # tar zxf keepalived-1.1.15.tar.gz # cd keepalived-1.1.15 # ./configure # make # make install # cd /etc/init.d # cp /usr/local/src/keepalived-1.1.15/keepalived/etc/init.d/keepalived.rh.init keepalivedSau khi cài đặt thành công keepalived , ta xem những thông số ? cấu hình của chúng có những chức năng gì và hoạt động như thế nào . /etc/keepalived/keepalived.conf
global_defs { notification_email { conmale@hvaonline.net } notification_email_from keepalived@localhost smtp_server localhost smtp_connect_timeout 30 router_id MY_LDAP }Trước tiên là global_dfs . Tại đây ta có thể ấn định những thông tin có đặt tính là "global" . Những thông số này có đặc điểm như sau . Ví dụ trong notification_email , ta có thể chỉ định địa chỉ email của người chịu trách nhiệm quản lý . và quan trọng là router_id , theo giải thích trên trang web chính thức của chương trình , thì thông số này là định nghĩa cluster ID . Cũng có thể hiểu là đạt đại cho vui! --------------------
vrrp_instance LDAP { state BACKUP interface eth2 garp_master_delay 5 virtual_router_id 200 priority 100 advert_int 1 nopreempt smtp_alert authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.223.33/25 dev eth2 } notify_master "/etc/keepalived/ldap.sh active" notify_backup "/etc/keepalived/ldap.sh backup" notify_fault "/etc/keepalived/ldap.sh backup" notify "/etc/keepalived/ldap.sh status" }Tiếp theo là ấn định VRRP instance . Block này có ý nghĩa là dùng cấu trúc cho những router ảo trong VRRP. Nếu khó hiểu thì bạn hiểu là cấu hình chổ này là quan trọng nhất trong chương trình này và tìm hiểu các option bên dưới . Các option mang đặc tính như sau : state <MASTER/SLAVE> : Cho server chạy bằng MASTER hay SLAVE . MASTER có nghĩa là máy cung cấp dịch vụ , còn SLAVE là máy backup . interface : Ấn định trên của NIC . Thông thường bạn dùng linux với mục đích server , sẽ có 2 NIC . trong ví dụ này tôi dùng eth2 . garp_master_delay : Khi server được nâng cấp lên trạng thái MASTER, sẽ có packet ARP báo delay . priority : Thông thương MASTER sẽ có số cao hơn SLAVE .Có thể dung từ 0 ~ 255 . Và những máy chủ có thong số priority cao sẽ tự động thành chế độ MASTER . nopreempt : Không dùng chế độ Preemt của VRRP . Khi ta tắt chế độ này, mấy chủ nào mang số priority thấp được nâng thành MASTER cũng không trở về trạng thái SLAVE . Cũng có thể hiểu là , không bị những máy có priority cao dành chế độ MASTER . Phần này khá quan trọng nên xin được thêm vài dòng , ví dụ : Khi hệ thống được cấu hình và đưa vào hoạt động 1 thời gian , trong khi đó LDAP1 default là MASTER, và LDAP2 dùng với SLAVE . Nhưng khi LDAP1 bị sự cố và bổng nhiên bị tắt , keepalived sẽ chạy các script như ta đã cấu hình , trong môi trường của bài viết , là khi LDAP1 bị teo thì LDAP2 sẽ chạy file cấu hình (slapd.conf) mang chức nang MASTER để trở LDAP2 trở thành MASTER. Nhưng khi thực hiện việc này sẽ có sự xung đột . Các server SLAVE thông thường sẽ mang số priority thấp hơn MASTER , vì vậy khi SLAVE được keepalived nâng cấp lên thành MASTER khi LDAP1 là MASTER bị chết , thì vẫn có khả năng tụt xuống lại vì priority thấp . Do đó ta cần phải dùng nopreempt : . advert_int : Theo dõi sống chết giữa các máy chủ có khoảng cách bào nhiêu giây đều có thể ghi tại option này . Ví dụ tại bài viết này là 1 giây . virtual_ipaddress : IP của nhóm server MASTER và SLAVE . Tất cả các máy LDAP tại bài viết này đều có 1 IP là 192.168.223.33 . Giải thích them một chút nữa thì network này mang subnet là 25 . notify_master <CMD> : Khi keepalived khẳng định LDAP1 đã chết , sẽ tự động chuyển LDAP2 thành master . Trong khi đó , tại option này ta có thể định nghĩa script khởi động cho LDAP2 . notify_backup <CMD> : Khi keepalived khẳng định LDAP1 là MASTER , sẽ tự động chuyển LDAP2 thành SLAVE . Trong khi đó , tại option này ta có thể định nghĩa script khởi sang trạng thái slave cho LDAP2 . Cuối cùng là tạo script /etc/keepalived/ldap.sh
#!/bin/bash // Set path đến openldap directory LDAP_CONFDIR="/usr/local/openldap/etc/openldap" case "$1" in active) logger ">>active" // Chạy đến directory của LDAP cd $LDAP_CONFDIR // Đổi file config slave thành master ln -sf slapd.conf.master slapd.conf logger "result $?" // Ngừng dịch vụ SLAVE service slapd stop // Chạy dịch vụ MASTER service slapd start logger "<<active" ;; backup) logger ">>backup" cd $LDAP_CONFDIR ln -sf slapd.conf.slave slapd.conf logger "result $?" service slapd stop service slapd start logger "<<backup" ;; status) logger ">>status" logger "<<status" ;; fault) logger ">>fault" logger "<<fault" ;; esacĐọc đến đây chắc bạn sẽ thắc mắc việc làm sao cấu hình keepalive trên LDAP1 và LDAP2 . Có cần thay đổi những trong số trong file config hay không ? Tại ví dụ này , trong file config của keepalived bạn có thể copy & paster nguyên nội dung sang các server bạn cần làm backup . (LDAP1 và LDAP2) File cấu hình trong ví dụ có tính năng giảm tỷ lệ down cho hệ thống bạn . Vì vậy khi dùng 2 máy chủ trở lên , bạn chỉ cần cấu hình keepalived giống nhau, thì bạn sẽ có một hệ thống 1 máy LDAP cung cấp dịch vụ , nhưng khi LDAP đó chết , sẽ có nhiều máy backup chạy thay thế . Các điểm cần chú ý khi cấu hình dịch vụ 1. Ví dụ mysql , bạn phải thêm chức năng đồng bộ giữ liệu . 2. Ví dụ apache , bạn chỉ cần cấu hình 2 server apache giống nhau , chắc nó sẽ chạy (vì tui chưa làm) 3. Ví dụ LDAP , cũng giống như mysql . Keepalived chỉ cung cấp dịch vụ giám sát chết/ sống và start và restart các script ta đã ấn định . Do đó , để chạy được dịch vụ đúng nghĩa của LDAP , bạn cần phải cấu hình LDAP riêng để giữa các máy chủ LDAP đồng bộ dữ liệu . 4. Để chạy được VRRP, bạn phải điều chỉnh firewall . Tham khảo thêm về các thuật ngữ : VRRP : http://www.quantrimang.com.vn/hethong/linux/35521_Su_dung_VRRP_tren_Linux_nang_cao_kha_nang_san_sang_cho_mang.aspx keepalived : http://www.keepalived.org/pdf/UserGuide.pdf 777]]>
Thanks, bài viết rất hay nhưng hình như bác tranvanminh thiếu phần hướng dẫn cài đặt keepalived rồi thì phải :DĐã thêm :x ]]>
# fdisk /dev/sdb /dev/sdb1 – Meta data (128M hoặc 256M) /dev/sdb2 – DataChú ý : Để tránh tình trạng lãng phí tài nguyên giải quyết domain , nên cấu hình/etc/hosts tương ứng cho mạng LAN của bạn . Sau khi fdisk xong , sẽ có kết quả như sau
コマンド (m でヘルプ): p Disk /dev/sdb: 73.4 GB, 73407820800 bytes 255 heads, 63 sectors/track, 8924 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 65 522081 83 Linux /dev/sdb2 66 8924 71159917+ 83 LinuxCopy file /usr/share/doc/drbd/drbd.conf vào /etc/ như sau
/etc/drbd.conf resource d0 { protocol C; startup { degr-wfc-timeout 120; # 2 minutes. } disk { on-io-error detach; } net { } syncer { rate 500M; al-extents 257; } on hvaonline.net { device /dev/drbd0; disk /dev/sdb2; address 192.168.10.10:7788; meta-disk /dev/sdb1[0]; } on hvaonline.net { device /dev/drbd0; disk /dev/sdb2; address 192.168.10.11:7788; meta-disk /dev/sdb1[0]; } }Ý nghĩa của các thông số có ý nghĩa như sau , Resource : Đặt tên cho resource . Protocol : Hãy chọn option này là C . Vì trong readme nó ghi vậy .
C: write IO is reported as completed, if we know it has reached _both_ local and remote DISK. * for critical transactional data. B: write IO is reported as completed, if it has reached local DISK and remote buffer cache. * for most cases. A: write IO is reported as completed, if it has reached local DISK and local tcp send buffer. (see also sndbuf-size) * for high latency networks ********** # uhm, benchmarks have shown that C is actually better than B. # this note shall disappear, when we are convinced that B is # the right choice "for most cases". # Until then, always use C unless you have a reason not to. # --lge #**********on-io-error : Xử lý khi bị I/O error pass_on : Report the io-error to the upper layers. (chưa hiểu lắm ) call-local-io-error : Chạy script mang tên call-local-io-error detach : The node drops its backing storage device, and continues in disk less mode. (Chưa hiểu lắm) Đọc module của drbd
lsmod |grep drbd modprobe drbd minor_count=1Kết quả khi nhúng drbd vào .
# modinfo drbd filename: /lib/modules/2.6.9-42.ELsmp/kernel/drivers/block/drbd.ko author: Philipp Reisner , Lars Ellenberg description: drbd - Distributed Replicated Block Device v8.0.7 license: GPL parm: minor_count:Maximum number of drbd devices (1-255) alias: block-major-147-* parm: allow_oos:DONT USE! license: GPL author: Evgeniy Polyakov description: Generic userspace <-> kernelspace connector. parm: cn_idx:Connector's main device idx. parm: cn_val:Connector's main device val. vermagic: 2.6.9-42.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4Tạo metadata.(chạy trên cả 2 máy chủ . )
# drbdadm create-md d0Khởi động và kiểm tra như sau . (chạy trên cả 2 máy chủ )
# drbdadm up all # cat /proc/drbd # service drbd startVào host 192.168.10.10, dùng lệnh sau để thành primary
#drbdadm -- --overwrite-data-of-peer primary all-> Phần 2 : Tạo filesystem cho 2 node Tại bước này , sẽ tạo file system và mount nó theo các trình tự sau Tại Primary : 192.168.10.10
# mke2fs -j /dev/drbd0Mount /dev/drdb0 đã tạo
#mkdir /mnt/drbd #mount /dev/drbd0 /mnt/drbd/Xong bước này xem như đã có sẵn những thứ cần thiết để đồng bộ dữ liệu . Thử failover bằng tay như sau tại Primary node : 192.168.10.10
# umount /mnt/drbd/ # drbdsetup /dev/drbd0 secondaryTại Secondary node : 192.168.10.11
# drbdsetup /dev/drbd0 primary # mount /dev/drbd0 /mnt/drbd/Cuối cùng , tạo một file nào đó và xem phía primary:192.168.10.10 có tồn tại nó hay không . -> Phần 3 : Setup Mysql để đồng bộ dữ liệu . 1. Cài đặt mysql -> Tìm trên HVA 2. cấu hình mysql Phần này là dễ nhất , bạn chỉ cần ấn định tại basedir vào dưới directory /mnt/drdb là xong . Ví dụ file cấu hình .
# Example MySQL config file for medium systems. # The following options will be passed to all MySQL clients [client] #password = your_password port = 3306 socket = /tmp/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] port = 3306 socket = /tmp/mysql.sock basedir=/mnt/drbd/data skip-locking key_buffer = 16M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M # Replication Master Server (default) # binary logging is required for replication log-bin # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set # but will not function as a master if omitted server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout-> Phần 4 : Dùng heartbeat để giám sát 2 máy chủ . Đón đọc và làm thử post kết quả lên cho vui nha bà con B-) ]]>
Cho mình hỏi là tại sao bạn lại triển khai MySQL với DRBD. Tại sao lại không dùng MySQL cluster? Mình có tìm qua thấy có nơi bảo rằng giải pháp MySQL cluster rất tốn kém, nhưng mình thấy nó cũng free đấy chứ. Có ai có thể so sánh qua về ưu và nhược điểm của hai kiểu triển khai này với nhau không?Không phải là MySQL dỏm. Từ trước đến giờ tôi vẫn thích nó lắm , dùng dòng 5.0 thì rất bất ổn định, từ 5.1 thì tốt hơn 1 chút . Đánh giá ở thời điểm này tôi thấy MySQL Cluster 6.2.15 rất ổn định và thích họp với các nhu cầu của HA khi dùng Mysql replication cho mô hình MASTER/SLAVE . Còn tại sao tôi viết bài DRDB với Mysql thì vì mới đây tôi vừa làm nên còn log để đưa lên cho mọi người tham khảo và cũng làm log cho cá nhân tôi . Vụ so sánh nhược điểm của hai cái này thì thú thật không dám nói vì tôi dùng DRDB không nhiều nên không biết . ]]>
Thứ 2 là nếu ta chỉ dùng DRDB mà ko dùng Heartbeat thì khi server chính die thì server backup còn lại sẽ ko tự động up lên thay thế mà ta phải làm manually việc này đúng ko bác ?Đúng vậy . Cho nên có HB thì tốt hơn nhiều B-) ]]>
Vẫn không ổn bác à. Theo như câu trên thì người đọc sẽ hiểu là: MySQL Cluster 6.2.15 rất ổn định và: - thích họp với các nhu cầu của HA - khi dùng Mysql replication cho mô hình MASTER/SLAVE Mà như vậy thì khá lủng củng. Tôi vẫn chưa rõ cái ý bác muốn diễn đạt là gì?]]>Thứ 1 là theo em biết thì MySQL Cluster với MySQL Replication là 2 kỹ thuật khác nhau hoàn toàn, vậy bác nói "thích hợp" ở đây là sao nhỉ smilieSorry , gõ thiếu dấu chấm . Đánh giá ở thời điểm này tôi thấy MySQL Cluster 6.2.15 rất ổn định và thích họp với các nhu cầu của HA. Và khi dùng Mysql replication cho mô hình MASTER/SLAVE .
Em sữa rồi đó ạ máy bác trong này bắt bẻ ghê quá . Check lại rồi báo em biết có sai nữa không để còn sữa nhé . Với lại , em thấy kiểu bác quanta "châm" không thoải mái chút nào . Viết sai thì bảo sai thôi , cần gì phải tỏ ra bộ mặt nghiêm túc quá đáng để làm gì vậy bác . Làm mất hết cả hứng thảo luận của người ta B-)Hạ hỏa lão ơi,lâu rồi mới thấy lão có hứng viết bài lại mà :D ]]>
Em ủng hộ bác quanta ở chỗ luôn có ý châm để đóng góp cho topic nhưng giống vớ bác tranvanminh là em đề nghị bác quanta nên tập xài các emoticon trong forum để cho anh em bớt căng thẳng đi ạ :DEm xin nói thẳng là em không có ý bắt bẻ hay "tỏ ra bộ mặt nghiêm túc quá đáng" gì cả, các bác bỏ qua nhé. PS: Sẽ để ý dùng emoticons nhiều hơn, -:|- (tại có vài cái không hiểu ý nghĩa của nó, sợ dùng nhầm, hehe).]]>
route add -net default gw 10.0.0.1