วันอังคารที่ 16 ธันวาคม พ.ศ. 2557

วันนี้จำเป็นต้องทดสอบ HOSxPXE4 ในฐานจริง

1. กำหนด ค่าใน hospital_department
kskdepartment

2. กำหนดค่าใน kskdepartment.hospital_department_id
เพื่อกำหนดที่ตั้งเครื่องคอมใน kskdepartment ว่าที่ตั้งนั้น ๆ สังกัดหน่วยไหนใน hospital_department

ของคุณพี่ อุดมโชค สมหวัง

วันอังคารที่ 14 ตุลาคม พ.ศ. 2557

วันอาทิตย์ที่ 5 ตุลาคม พ.ศ. 2557

วันอังคารที่ 16 กันยายน พ.ศ. 2557

MySQL backup script สำหรับตั้งเวลาสำรองข้อมูลแยกตารางทุกวัน แทน windows เข้า NAS ก็ได้

#!/bin/sh
# System + MySQL backup script
# Copyright (c) SOFTWARE  2014
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------

#########################
######TO BE MODIFIED#####

### System Setup ###
BACKUP=/Backup

### MySQL Setup ###
MUSER="root"
MPASS="password"
MHOST="192.168.48.5"



######DO NOT MAKE MODIFICATION BELOW#####
#########################################

### Binaries ###
7ZIP="$(which 7za)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Today + hour in 24h format ###
NOW=$(date +"%Y%m%d")

### Create hourly dir ###

#mkdir $BACKUP/$NOW

### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
   if [ "$db" == "styhos" ];
  ##if [ "$db" != "mysql" ] && [ "$db" != "information_schema" ];
   then

### Create dir for each databases, backup tables in individual files ###
 # mkdir $BACKUP/$NOW/$db

  for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  do
        FILE=$BACKUP/$i.sql
        ##FILE=$BACKUP/$NOW/$db/$i.sql
### --opt --default-character-set=tis620 --force --allow-keywords --single-transaction --user=diy --password=diymysql -h 192.168.48.5 ###
    echo $i; $MYSQLDUMP --opt --default-character-set=tis620 --force --allow-keywords --single-transaction  --add-drop-table  -q -c -u $MUSER -h $MHOST -p$MPASS $db $i  > $FILE
  done

    ### Compress all tables in one nice file to upload ###
 
 #   echo  $BACKUP/$NOW/$db/*.sql
#   7za -t7z  -pdiyzip  /home/LOG/styhos_`date "+%Y%m%d%H%M"`.sql.7z   Backup/*.sql  >> backup.txt



  else
   echo $db
  fi
done

### Compress all tables in one nice file to upload ###

ARCHIVE=$BACKUP/$NOW.sql.7z
ARCHIVED=$BACKUP/$NOW

#7za -t7z  -pXXX  $ARCHIVE $ARCHIVED



### Delete the backup dir and keep archive ###

#rm -rf $ARCHIVED



7za a  -pdiyzip  /home/LOG/styhos_`date "+%Y%m%d%H%M"`.sql.7z  /Backup/*.sql  >> backup.txt

rm -rf  /Backup/*.*

วันพุธที่ 10 กันยายน พ.ศ. 2557

MySQL error 28 from storage engine

MySQL error 28 from storage engine

HardDisk  Full

mysql script backup แล้ว 7zip พร้อม


#!/bin/sh




mysqldump --opt --default-character-set=tis620 --force --allow-keywords --single-transaction --user=XXXX --password=YYYY -h 192.168.48.5   hos > /home$








7za a -t7z  -pXXXX  /home/LOG/hos_`date "+%Y%m%d%H%M"`.sql.7z   /home/LOG/*.sql  >> backup.txt
rm -rf /home/LOG/*.sql >> backup.txt

Mysql Scipt backup เก็บเป็นตาราง ๆๆ ละแฟ้ม

#!/bin/sh
# System + MySQL backup script
# Copyright (c) 2008 Marchost
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------

#########################
######TO BE MODIFIED#####

### System Setup ###
BACKUP=/Backup

### MySQL Setup ###
MUSER="sa"
MPASS="sa"
MHOST="172.16.16.195"


### FTP server Setup ###
#FTPD="YOUR_FTP_BACKUP_DIR"
#FTPU="YOUR_FTP_USER"
#FTPP="YOUR_FTP_USER_PASSWORD"
#FTPS="YOUR_FTP_SERVER_ADDRESS"

######DO NOT MAKE MODIFICATION BELOW#####
#########################################

### Binaries ###
TAR="$(which tar)"
GZIP="$(which gzip)"
#FTP="$(which ftp)"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Today + hour in 24h format ###
NOW=$(date +"%d%H")

### Create hourly dir ###

mkdir $BACKUP/$NOW

### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do

  if [ "$db" != "mysql" ] && [ "$db" != "information_schema" ];
   then

### Create dir for each databases, backup tables in individual files ###
  mkdir $BACKUP/$NOW/$db

  for i in `echo "show tables" | $MYSQL -u $MUSER -h $MHOST -p$MPASS $db|grep -v Tables_in_`;
  do
    FILE=$BACKUP/$NOW/$db/$i.sql.gz
    echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  done

  else
   echo $db
  fi
done

### Compress all tables in one nice file to upload ###

ARCHIVE=$BACKUP/$NOW.tar.gz
ARCHIVED=$BACKUP/$NOW

$TAR -cvf $ARCHIVE $ARCHIVED

### Dump backup using FTP ###

### Delete the backup dir and keep archive ###

rm -rf $ARCHIVED

วันอังคารที่ 9 กันยายน พ.ศ. 2557

check_all_databases.sh

#!/bin/bash
USER=root
Port=3306
PASSWD=password

DBS="$(/usr/bin/mysql --connect_timeout 10 -u $USER -P $Port -p$PASSWD -Bse 'SHOW DATABASES')"
for db in $DBS
        do
                if [ "$db" != "mysql" ] && [ "$db" != "information_schema" ];
                then
                        /usr/bin/mysqlcheck -u $USER -p$PASSWD -c $db
                fi
        done

วันพุธที่ 27 สิงหาคม พ.ศ. 2557

mysql การจัดเรียงข้อมูล Utf8 แบบ tis620

 MySql หากเราใช้ charset เป็น utf-8  เวลาที่เรา oder by การจัดเรียงข้อมูลตัวอักษรที่เป็นภาษาไทยจะไม่ถูกต้อง ดังนั้นเราต้องใช้การจัดเรียงแบบ  tis-620  ซึ่งจะทำให้การจัดเรียงข้อมูลได้อย่างถูกต้อง

SELECT * FROM `table` ORDER BY CONVERT( province USING tis620 ) ASC 

วันพุธที่ 20 สิงหาคม พ.ศ. 2557

ESET v5, v6 and v7

Special note for ESET v5, v6 and v7 users:

  • Before anything(above steps) go to safe mode then go to below registry key:
  • HKEY_LOCAL_MACHINE\SOFTWARE\ESET\ESET Security\CurrentVersion\Info
  • Change value of "PackageFeatures" to:
  • For version 5 set to 1
  • For version 6 smart security change "53" to "51"
  • For version 6 Antivirus change "22" to "20"
  • For version 7 smart security change "53" to "54"
  • For version 7 Antivirus change "22" to "24"
  • This registry key changes make visible "Edit" button in Update setting in v5, v6 and v7.

วันศุกร์ที่ 15 สิงหาคม พ.ศ. 2557

การจัดการบริการบน CentOS Linux 7.0 ด้วย Systemd

การจัดการบริการบน CentOS Linux 7.0 ด้วย Systemd



การจัดการบริการหรือ Services บนระบบปฏิบัติการ CentOS Linux รีลีสเก่าๆ (CentOS 6.x ลงมา) ในการจัดการบริการต่างๆ จะใช้รูปแบบดังนี้

การเปิดและปิดบริการ 
# service service_name start/stop/restart

การเปิดใช้งานบนบู๊ตระบบ 
# chkconfig service_name on/off
# chkconfig -list

ใน CentOS Linux 7.0 และ RHEL 7.0 ขึ้นมาจะใช้การควบคุมบริการด้วย Systemd แทน ดังนั้นการควบคุมบริการทั้งหมดจะถูกเปลี่ยนแปลงไป โดยการจัดการบริการทั้งหมดจะใช้คำสั่ง systemctl แทนคำสั่ง service และ chkconfig ที่ใช้ในรีลีสก่อนหน้า โดยในปัจจุบันมีระบบปฏิบัติการหลายตัวได้หันมาใช้งาน Systemd

ระบบปฏิบัติการที่เปลี่ยนมาใช้งาน Systemd 
- Arch Linux / October 2012
- CentOS Linux เวอร์ชั่น 7.0 ขึ้นไป / July 2014
- CoreOS / July 2013
- Debian GNU/Linux / April 2012
- Fedora เวอร์ชั่น 15 ขึ้นไป / May 2011
- Frugalware Linux เวอร์ชั่น 1.5 ขึ้นไป / August 2011
- Gentoo Linux / 2011
- Mageia เวอร์ชั่น 2.0 ขึ้นไป / May 2012
- openSUSE เวอร์ชั่น 11.4 ขึ้นไป / March 2011
- Red Hat Enterprise Linux เวอร์ชั่น 7.0 ขึ้นไป / June 2014
- Sabayon Linux เวอร์ชั่น 13.08 ขึ้นไป / August 2013
- Ubuntu เวอร์ชั่น 13.04 ขึ้นไป / April 2013

คำสั่งการใช้งานของ Systemd โดยมีรายละเอียดคำสั่งคร่าวๆ ดังนี้ 
การตรวจสอบรายชื่อบริการ (List all running services ) 
# systemctl

การเปิดบริการ (Activates a service) 
# systemctl start service_name
ตัวอย่าง เช่น
# systemctl start httpd
การปิดบริการ (Deactivates a service) 
# systemctl stop service_name
ตัวอย่าง เช่น
# systemctl stop httpd
# systemctl stop iptables
# systemctl stop ip6tables
การปรับใช้งานบริการใหม่ (Reload a service) 
* ใช้ในกรณีหลังการปรับแต่งค่าบริการหรือ config file โดยไม่ให้รบกวนบริการที่กำลังทำงานอยู่ 
# systemctl reload service_name
ตัวอย่าง เช่น
# systemctl reload httpd
การเรียกใช้งานบริการใหม่ (Restarts a service) 
# systemctl restart service_name
ตัวอย่าง เช่น
# systemctl restart httpd
การเริ่มบริการที่มีอยู่แล้วให้ทำงานใหม่ (Restarts if the service is already running) 
# systemctl condrestart service_name
ตัวอย่าง เช่น
systemctl condrestart httpd
การตรวจสอบดูสถานะของบริการ (Shows status of a service) 
# systemctl status service_name
ตัวอย่าง เช่น
# systemctl status httpd
# systemctl status iptables
การเปิดใช้งานบริการตอนบู๊ตระบบ 
การเปิดบริการตอนบู๊ตเครื่อง (Enables a service to be started on bootup)
# systemctl enable service_name
ตัวอย่าง เช่น
# systemctl enable httpd
การปิดบริการตอนบู๊ตเครื่อง (Disables a service to not start during bootup) 
# systemctl disable service_name
ตัวอย่าง เช่น
systemctl disable httpd
การเปิดบริการแบบ Manual (masked) 
# systemctl mask service_name
ตัวอย่าง เช่น
# systemctl mask dovecot
การตรวจสอบว่าบริการที่มีอยู่ถูกเปิดใช้งานอยู่หรือไม่ 
# systemctl is-enabled service_name
หรือ
# systemctl is-enabled service_name; echo $?
โดยที่
0 มีการเปิดใช้งาน
1 มีการปิดการใช้งาน
ตัวอย่าง เช่น
# systemctl is-enabled httpd
masked
# systemctl is-enabled httpd ; echo $?
masked
1
เปรียบเทียบคำสั่ง CentOS 6.x down vs CentOS 7.x up 
service service_name start = systemctl start service_name
service service_name stop = systemctl stop service_name
service service_name restart = systemctl restart service_name
service service_name reload = systemctl reload service_name
service service_name status = systemctl status service_name
chkconfig service_name on = systemctl enable service_name
chkconfig service_name off = systemctl disable service_name
chkconfig --list service_name = systemctl is-enabled service_name
chkconfig --list = systemctl list-unit-files --type=service
--
ที่มา:
http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities
https://fedoraproject.org/wiki/Systemd
http://www.freedesktop.org/software/systemd/man/systemctl.html
http://fedoraproject.org/wiki/SysVinit_to_Systemd_Cheatsheet



Write by Arnut Ruttanatirakul, Ph.D.
 See more at: http://www.sysadmin.in.th/node/309

วันพฤหัสบดีที่ 30 พฤษภาคม พ.ศ. 2556

การอัพเกรด HOSxP_PCU_MySQL_Upgrade 5.5 (จากแหล่งอ้างอิง)

อ้างอิงจากลิงค์ของส้ม http://hosxp.net/index.php?option=com_smf&Itemid=28&
topic=29909.msg245569#new  เพื่อการอัพเกรด MySQL 5.5
เนื่องด้วยขณะนี้ มีรพ.สต. หลายแห่งที่มี version mysql เป็น 5.1.XX  ซึ่งค่อนข้างเก่าเกินไป และอาจจะมีผลทำให้ upgrade structure ใน version 3.56.5.7 ไม่ผ่านค่ะ  วันนี้เราเลยนำ
HOSxP_PCU_MySQL_Upgrade 5.5 มาฝากค่ะ  ตามลิงค์นี้นะคะ

http://hosxp.net/bms/HOSxP_PCU_MySQL_Upgrade_5.5.31.exe 

ข้อแนะนำ
1. ติดตั้ง HOSxP_PCU_MySQL_Upgrade_5.5.25.exe ควร Run  As Administrator
2. เมื่อติดตั้งเสร็จแล้ว เวลาเข้าใช้งาน HOSxP PCU ควร Run  As Administrator
***อ้างอิงลิงค์ของนัน http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=29866.msg245558#new  เพื่อการcreate event ใน trigger ของ Inventory สำหรับหน่วยที่มีการใช้ Inventory PCU
3.แก้ไฟล์ my.ini ใน C:\Windows
     วิธีการคือ  3.1 เข้า start>run   พิมพ์   cmd
                  3.2 พิมพ์  net stop mysql
                  3.3 แก้ไขไฟล์  my.ini   เพิ่ม event_scheduler=1 แล้ว Save
                  3.4 พิมพ์  net start mysql แล้วเข้าใช้งานครับ

***** อย่าลืมตอนติดตั้งตัว Upgrade mysql ต้องปิดระบบ Security ของ Antivirus หรือคลิกขวา Run as Administrator ทุกครั้งครับ **


วันพุธที่ 3 เมษายน พ.ศ. 2556

ZABBIX VMware ESX Monitoring

https://blog-softnixtech.rhcloud.com/2013/01/29/zabbix-vmware-esx-monitoring/


ZABBIX VMware ESX Monitoring


ปัจจุบันต้องยอมรับว่า Vmware ESX คือ Patform หลักที่ได้รับความนิยมสูงสุดที่ใช้ในการขับเคลือน Virtualization Server อยู่ในปัจจุบัน ด้วยความสามารถด้านระบบบริหารจัดการ เสถียรภาพ และบริการหลังการขาย แต่อีกสิ่งหนึ่งที่มีความจำเป็นไม่ใช่น้อยนั้นก็คือระบบ Monitoring ซึ่งจะเป็นระบบที่ใช้สำหรับตรวจสอบการทำงานของ Vmware ESX ตรวจสอบทรัพยากรระบบที่ถูกใช้ไป รวมถึงระบบ Alert เมื่อมีเหตุการณ์ผิดปกติเกิดขึ้น
ดังนั้นในบทความนี้จะอธิบาย ZABBIX ในการ Monitor ระบบ Vmware ESX Host Server โดยจะยังไม่กล่าวถึงการ Monitor Virtual Server ที่รันอยู่ภายใน  เพื่อให้ทุกท่านที่สนใจได้รับทราบว่า ZABBIX มีความสามารถเพียงใด เพื่อประกอบการพิจารณาในการเลือกใช้งาน
zabbix vmware monitor
Top 100 Event Triggers
Triggers ความหมายของ ZABBIX คือค่าของเหตุการณ์สูงสุดที่ยอมรับได้หรือค่าที่บ่งบอกถึงความผิดปกติที่เกิดขึ้น เช่น ค่า trigger เป็น 0 เมื่อ ZABBIX Server ไม่สามารถ Ping Server เป้าหมายได้นานเกิน 10 นาที หรือ trigger เป็น 1 เมื่อ Traffic Bandwidth ของ Router สูงถึง 8Mbps นานติดต่อกันเกิน 15 นาที เงือนไขการตรวจสอบเหล่านี้ถือสิ่งที่ ZABBIX รองรับ ซึ่งเป็นเหตุให้ ZABBIX มีความยืดหยุ่นสูงในการใช้งาน
ZABBIX รองรับรายงาน (Report) ที่รวบรวมจำนวนครั้งของเหตุการณ์ผิดปกติ (Trigger) เพื่อให้ผู้ดูแลระบบทราบ ดังตัวอย่างภาพ
Top100 triggers
ระบบสามารถเลือกดูเหตุการณ์ตามช่วงเวลาได้อย่างง่ายดาย ด้วยเหตุนี้จึงทำให้ง่ายต่อการวิเคราะห์การทำงานของระบบ เพื่อช่วยให้วางแผนการปรับปรุงระบบเพื่อตอบสนองต่อการใช้งานของผู้ใช้หรือธุรกิจได้อย่างถูกต้อง
ZABBIX Graph
Availability Report
ZABBIX สามารถรวบรวมเหตุการณ์ผิดปกติเพื่อคำนวณค่า % ของเหตุการณ์ที่ปกติ (Status OK) และผิดปกติ (Status Problem) ต่อช่วงเวลาที่กำหนดได้ ทำให้ผู้ดูแลระบบทราบได้ทันทีว่า ปริมาณของเหตุการณ์ผิดปกตินั้นมากเพียงใด เพื่อสรุปเป็นรายงานเชิงมาตรฐาน ตัวชี้วัด (KPI) ได้
Availability Report
Availability Report2
Performance Monitor
สำหรับ Vmware ESX Server ซึ่งรองรับ VM จำนวนมาก จะมีอัตรา Read/Write Disk จำนวนมาก เราสามารถใช้ ZABBIX ในการรายงานปริมาณอัตรา Read/Write Disk ได้
ZABBIX Disk Write rate
นอกจากนั้น ZABBIX ยังสามารถ Monitor ค่าต่างๆของ  Vmware ESX Server ได้อย่างมากมาย อทิเช่น  CPU, RAM, Network Traffic
performance monitor
Maps
ZABBIX มีระบบสร้าง Map ที่เรียกว่า Dynamic Map โดยการลาก icon และวางยังตำแหน่งที่ต้องการ เรายังสามารถเพิ่ม icon หรือ ภาพ background เพื่อง่ายต่อความเข้าใจของเรา สร้างการ Monitor ที่เรียกว่า High Level View หรือ Business Level View
zabbix map

บทสรุป
ZABBIX คือหนึ่งใน Software Monitoring System ซึ่งมีประสิทธิภาพสูง ด้วยความสามารถที่หลากหลายเช่นเดียวกับ Software Monitoring ราคาแพงทั่วไป จึงนับได้ว่า ZABBIX คืออีกหนึ่งทางเลือกที่คุ้มค่าที่สุด เมื่อเทียบกับต้นทุนที่ใช้ไปในการใช้ระบบนี้ต่อประโยชน์ที่จะได้รับ ดังนั้นปัจจัยที่มีผลโดยตรงกับการเลือก ZABBIX คือ ระยะเวลาในการ Implement รวมไปจนถึงความยากง่ายในการเรียนรู้ รวมไปจนถึงบริการหลังการขายอย่างมืออาชีพ ที่จะคอยช่วยเหลือ
Softnix คือบริษัทที่เป็นตัวแทนอย่างเป็นทางการของ ZABBIX SIA ที่จะช่วยให้คำปรึกษา ออกแบบ และติดตั้ง รวมไปจนถึงการอบรมการใช้งาน ช่วยให้นำ Software ตัวนี้มาใช้ประโยชน์ได้อย่างเต็มที่คุ้มค่าที่สุด และใช้เวลาที่สั้นที่สุด
ท่านที่สนใจสามารถสอบถามข้อมูลเพิ่มเติมได้ที่ http://www.softnix.co.th/v2/contact.php

VMWARE ESXi 5.x กับเครื่อง PC

VMWARE ESXi  5.x  กับเครื่อง PC

จริงๆๆ เป็นคนไม่บอ VM  เพราะว่ามันทำให้ os ที่ใช้งาน VM ทำงานไม่เต็มที่

แต่จำเป็นต้องใช้เพราะว่าปีหน้าต้องเปลียนเครื่อง SERVER  .ใหม่ ตัวเก่าจะใช้มาเกิน 5 ปีแล้ว

เลยจำเป็นต้องใช้ครับ   เพราะว่าคงซื้อได้ตัวเดียว   แต่ว่าจะำเป็นต้องลงให้ os ให้เท่ากับตัวเดิม 3 ตัว




-----------------------------------------------------------------------------------------------------------
ต้องหาซื้อตัวนีด้วย


เราสามารถเพิ่มความเร็วให้กับ Guest VM ใน VMware ESX โดยใช้เทคโนโลยีของ Fusion-io ได้อย่างไร

13 August 2012 -- Fusion-io มีเทคโนโลยีที่สามารถช่วยเพิ่มความเร็วในการประมวลผลข้อมูลของ Guest VM ใน VMWare ESX Server ได้เป็นอย่างดี โดยใช้ Software ที่ชื่อว่า ioTurbine ร่วมกับ Fusion-io Hardware (Enterprise PCIe Flash Memory) โดย Software นี้มีข้อดีอย่างไรบ้างให้ดูตามรายละเอียดด้านล่างนี้ได้เลยครับ

  • เป็น Very High Speed Disk Read Caching ให้กับ Guest VM นั่นหมายความว่า หาก Guest VM นั้นมี Application workload ที่มีการอ่านข้อมูลเพื่อการประมวลผลเป็นอย่างมากแล้ว เช่นพวก ระบบ Database, ระบบ Email Messaging (Microsoft Exchange, Lotus Notes) เราสามารถเพิ่มความเร็วให้กับ Guest VM นั้นได้ ทั้งในเชิงของ Response Time ที่รวดเร็วขึ้นกว่าเดิมมาก (จากเดิมต้องใช้เวลารอ I/O ถึงระดับ Milliseconds  สามารถลดได้เหลือระดับ Microseconds),  สามารถรองรับจำนวน Query ต่อหน่วยเวลาได้ดียิ่งขึ้น และ สามารถเพิ่ม Disk IOPS ให้สูงขึ้นได้ด้วยเช่นกัน   

  • สามารถลดภาระ (Offload Disk I/O Activity) ของ Shared Storage ได้เป็นอย่างดี ทำให้ Shared Storage ของ ESX Cluster นั้น เหลือทรัพยากรที่จะรองรับการเขียนข้อมูล (Write Workload) จาก Guest VM ต่างๆ ได้ดีมากกว่าเดิมมากๆ  สาเหตุที่เป็นแบบนี้เพราะ Read I/O นั้นถูก Caching ขึ้นไปที่ ESX Server อยู่บน Fusion-io Flash Memory Hardware เรียบร้อยแล้ว



ซึ่งจากภาพด้านบน ภาพซ้ายมือคือ รูป Architecture แบบปกติ ของ VMware ESX Cluster ที่เป็นลักษณะที่มี Shared Storage ระหว่าง VMware ESX Server เพื่อให้ Guest VM สามารถใช้ข้อมูลและทำ vMotion ข้าม ESX Server กันได้  ถ้าดูในภาพซ้ายมือนี้ จะพบว่า I/O Performance จะถูกซอยย่อย แบ่งๆ กันไปในแต่ละ Guest VM จนทำให้ แต่ละ Guest VM มี I/O Performance ที่ไม่มากพอ ที่จะรองรับ I/O Intensive Workload หนักๆ ได้ (จริงๆ สามารถจะทำให้ภาพด้านซ้ายรองรับ Workload หนักๆได้เหมือนกัน แต่ว่า ต้องไป Upgrade Shared Storage ให้สามารถรองรับ IOPS, Bandwidth ได้มากขึ้น โดยการเพิ่มจำนวน Disk Spindle เข้าไปใน SAN/NFS Shared Storage นั้นๆ แต่ว่า ก็ไม่ได้ทำให้  Latency นั้นลดลงเหลือระดับ Microsecond ได้อยู่ดี )  ซึ่งเรามีตัวเลือกการลงทุนแก้ปัญหาในเรื่องนี้ที่ดีกว่าในภาพด้านขวาครับ

แต่หากดูภาพขวา กรณีที่มีการใช้ Fusion-io Solution มาช่วยเพิ่มประสิทธิภาพของ VMWare ESX Cluster นี้ สิ่งที่เกิดขึ้นคือ เราสามารถทำให้แต่ละ Guest VM มี I/O Performance เป็นของตนเอง ที่สามารถรองรับ I/O Intensive Workload สูงๆ ได้ โดยที่ Shared Storage ยังคงเป็น Shared Storage ตัวเดิม (ไม่ต้อง Upgrade แต่อย่างใด) สาเหตุที่ทำได้เพราะว่า มีการติดตั้ง Fusion-io Hardware (Enterprise PCIe Flash) เข้าไปในแต่ละ ESX Server และ ก็มีการใช้ เทคโนโลยีของ ioTurbine Software มาช่วยในการทำ Very High Speed Disk Caching บน ESX Server นั่นเอง

หน้าตาของ Fusion-io Hardware เป็นไปตามภาพด้านล่าง ซึ่งจัดเป็น Enterprise Grade PCIe Flash ครับ เราสามารถเลือกได้หลายขนาด แต่ว่ามีขนาดที่เป็นชุด Bundle Package แล้ว ที่เรียกว่า ioCache 600GB ซึ่งจะมาทั้ง Hardware และ Software ioTurbine ในราคาพิเศษ (ถูกกว่า ซื้อแยก)


การใช้ตัวเลือกนี้ในการ เพิ่มความเร็วในการประมวลผลให้กับ Guest VM นั้นจะเป็นวิธีที่แก้ปัญหาได้ตรงจุดที่สุด ได้ Performance สูงสุด และ Latency (ความล่าช้าในการ access storage I/O หรือ delay) ต่ำที่สุด เพราะว่า Fusion-io Hardware นั้นทำงานที่ความเร็วระดับ Microsecond เท่านั้น  (จะไม่เหมือนกับที่ Shared Storage ที่มีความเร็วระดับ Milliseconds ซึ่งช้ากว่าเป็นพันเท่า โดยเทียบหน่วย ระหว่าง 10 ยกกำลัง -6  กับ 10 ยกกำลัง -3)  นั่นหมายความว่า เวลาที่ Guest VM ต้องการอ่านข้อมูลจาก Storage จะสามารถอ่านได้เร็วกว่าเดิมมากๆ ก็เลยเป็นที่มาว่าทำไม Guest VM จึงมี Performance ในการทำ Data Processing สูงขึ้นนั่นเอง

โดยส่วนตัว ผมได้ใช้กับ Guest VM ที่เป็น Database Server (IBM DB/2) ก็พบว่าใช้งานได้ดีเลยครับ โดยมี Cache Hit สูงถึง 80% นั่นหมายความว่า 80% ของเวลา Database Server (Guest VM) นี้อ่านข้อมูลจาก Fusion-io Hardware Flash Card นั่นเอง ส่วนอีก 20% นั้นอ่านจาก Shared Storage เพราะเป็นข้อมูลที่ไม่ได้อยู่ใน Cache ณ เวลาที่ต้องการอ่าน หรือจะแปลเป็นอีกความหมายหนึ่งว่า การใช้ Fusion-io Solution นี้ จะช่วยลด Workload ที่เกิดขึ้นที่ Shared Storage ได้สูงถึง 80% นั่นเอง (สำหรับ Guest VM นี้ๆ)

แต่ทั้งหลายทั้งปวง ถ้า Guest VM นั้นไม่ได้มี Workload ประเภทที่ต้องเขียน/อ่าน ข้อมูลกับ Storage Disk นั้น Solution นี้จะไม่ได้ช่วยเร่งหรือเพิ่มความเร็วอย่างแน่นอนครับ ดังนั้น Solution นี้จะเหมาะกับ Guest VM ที่เป็น Application ประเภทเกี่ยวกับการประมวลผลข้อมูลจะเหมาะสมที่สุด

สนใจข้อมูลเพิ่มเติมเกี่ยวกับเทคโนโลยีนี้ สามารถติดต่อตัวแทนจำหน่าย Fusion-io อย่างเป็นทางการประจำประเทศไทยได้ที่ บริษัท แทนเจอรีน จำกัด