Saturday, August 23, 2014

การติดตั้ง และคอนฟิก virtual DNS Primary(master) Server บน VMware (CentOS6.4)

การติดตั้ง และคอนฟิก DNS Server บน VMware

     dns server คืออะไร
     dns ก็คือ domain name system
     server ก็คือ เครื่องแม่ข่าย
     virtual ก็คือ การจำลอง
     เมื่อเอามารวมกันก็ได้ว่า เครื่องแม่ข่าย dns เสมือนนั่นเองงง **ยิ่งแปลยิ่งงง อิอิ

DNS มีหน้าที จับคู่ IP address กับ hostname แล้วแปลงไปกลับนะครับ จะว่ายังไงดีล่ะ ก็ประมาณเป็นเหมือนหน่วยงานหนึ่งที่ทำหน้าที่ เก็บข้อมูลของคนไทย แล้วบันทึกว่าคนไหนใช้เบอร์โทรศัพท์อะไรประมาณนั้นอ่ะครับ เวลาเราเรียกเครื่องจากปกติ เราจะต้องเรียกเป็น ip addr เช่น
     - ping [ipaddr]
     - http://[ipaddr]
เป็นต้นนะครับ เจ้าตัวนี้จะช่วยให้เราเรียกเป็นชื่อได้ เราจึงไม่ต้องจำเป็น ipaddr ครับ เช่น
     - http://www.google.co.th
     - http://virtualitinfra.blogspot.com
แล้ว primary คืออะไร ก็คือการทำ redundancy กันครับ เผื่อว่าตัวนึงร่วงจะได้ไม่กระทบกับระบบครับ

ทีนี้เรามาดูกันดีกว่าว่าจะใช้เจ้านี่ได้ยังไง

อ่อ! ลืมบอกไป วิธีนี้ใช้ได้กับทั้ง virtual server และ physical server เลยนะครับ

  • ก่อนอื่นก็ mount แผ่น CentOS 6.4 ก่อนเลยครับ
  • mount cd ครับ

    # mkfir /mnt/cdrom
    # mount /dev/sr0 /mnt/cdrom
  • ไปแก้ไขไฟล์ repo ครับ

    # vi /etc/yum.repos.d/CentOS-Media.repo


    ตรงบรรทัด 
    baseurl=file:///media/CentOS/
    ให้แก้เป็น 
    baseurl=file:///mnt/cdrom/

    จากนั้นกด ESC และ :wq เพื่อเซฟไฟล์ครับ
  • update repos

    # yum update -y
  • install bind ครับ

    # yum install bind bind-utils -y
  • จากนั้นก็ไปคอนฟิกไฟล์ /etc/named.conf ครับ

    # vi /etc/named.conf


    ดูในส่วนของ option ก่อนนะครับ

    options {
    listen-on port 53 { 127.0.0.1; 10.224.202.11;}; #ip master server
    listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost; 10.224.202.0/24;}; #IP Range client
    allow-transfer  { localhost; 10.224.202.12;};   #DNS Slave server
            recursion yes;
            dnssec-enable yes;
            dnssec-validation yes;
            dnssec-lookaside auto;
    
            /* Path to ISC DLV key */
            bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    };
    
    จากนั้นประกาศ zone ใหม่ขึ้นมาท้ายไฟล์ครับ ต่อจาก zone "." IN ... นะครับ ในที่นี้จะใช้ว่า demo.local นะครับ      ส่วนของ forward zone ก่อนเลยครับ forward zone ก็คือ การ mapping hostname -> IPADDR ครับ
    zone "demo,local" IN {
            type master;
            file "f.demo.local";
            allow-transfer { 10.224.202.12; };     #IP slave server
    };
    
    จากนั้นก็ reverse zone ครับ ก็คือ ส่วนที่ทำหน้าที่ แปลง IPADDR -> hostname ครับ
    zone "202.224.10.in-addr.arpa" IN {
            type master;
            file "r.demo.local";
            allow-transfer { 10.224.202.12; };
    };

    จากนั้นก็ เซฟไฟล์และปิดไฟล์ครับโดยกด esc แล้วตามด้วย :wq และ enter ครับ
  • คอนฟิกไฟล์ f.demo.local

    # vi /var/named/f.demo.local

    พิมพ์ตามนี้ครับ

    $TTL    86400
    @       IN      SOA     ns1.demo.local.      root.demo.local. (
                    2014082002      ;Serial
                    3600            ;Refresh
                    1800            ;Retry
                    604800          ;Expire
                    86400           ;Minimum TTL
    )
    @                       IN NS   ns1.demo.local.
    ns1                     IN A    10.224.202.11
    @                       IN A    10.224.202.11
    ns2                     IN A    10.224.202.12
    


    เซฟ และปิดครับ
  • แก้ไฟล์ r.demo.local เลยครับ

    # vi /var/named/r.demo.local

    ตามด้านล่างนี้เลยครับ

    $TTL    86400
    @       IN      SOA     ns1.demo.local.        root.demo.local. (
                    2014082002      ;Serial
                    3600            ;Refresh
                    1800            ;Retry
                    604800          ;Expire
                    86400           ;Minimum TTL
    )
    @       IN NS   ns1.demo.local.
    ns1     IN A    10.224.202.11
    11      IN PTR  ns1.demo.local
    ns2     IN A    10.224.202.12
    12      IN PTR  ns2.demo.local
    


    เซฟและปิดครับ
  • จากนั้นคอนฟิกที่ตัว secondary ครับ

    # vi /etc/named.conf


    options {
    listen-on port 53 { 127.0.0.1; 10.224.202.11;}; #ip master server
    listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost; 10.224.202.0/24;}; #IP Range client
            recursion yes;
            dnssec-enable yes;
            dnssec-validation yes;
            dnssec-lookaside auto;
    
            /* Path to ISC DLV key */
            bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    };
    
    

    จากนั้นประกาศ zone ส่วนของ forward zone ก่อนเลยครับ จะคล้ายกันครับต่างกันเล็กน้อย

    zone "demo,local" IN {
            type slave;
            file "slaves/f.demo.local";
            allow-transfer { 10.224.202.12/24; }; #IP slave server
            masters { 10.224.202.11; };   #master ipaddr
    };
    
    

    จากนั้นก็ reverse zone ครับ

    zone "202.224.10.in-addr.arpa" IN {
            type slave;
            file "slaves/r.demo.local";
            allow-transfer { 10.224.202.12/24; };
            masters { 10.224.202.11; };
    };
    


    เซฟและออกครับ
    ส่วนไฟล์ f.demo.local และ r.demo.local ไม่ต้องคอนฟิกครับ เดี๋ยวมันจะทำการ sync กันเองครับ
  • จากนั้นก็ไปแก้ไขไฟล์ /etc/resolv ของทั้งสองตัวเลยครับ

    # vi /etc/resolv.conf
    


    ให้ลบบรรทัดอื่นให้หมด และใส่แค่

    nameserver     127.0.0.1
    
  • จากนั้นก็ start service โลดเลยครับ

    # service named start

    หรือ
    # /etc/init.d/named start
    
  • จากนั้นก็ทดสอบครับ

    # nslookup ns1.demo.local
    


    ต้องได้ประมาณ
    Server:         127.0.0.1
    Address:        127.0.0.1#53
    
    Name:   ns1.demo.local
    Address: 10.224.202.11
    
    # nslookup ns2.demo.local
    
    Server:         127.0.0.1
    Address:        127.0.0.1#53
    
    Name:   ns2.demo.local
    Address: 10.224.202.12
    
  • หรือจะตรวจสอบจากการเช็ค serial ก็ได้ครับ

    # dig demo.local +nssearch | cut -d ' ' -f 4 | sort | uniq -c
    
    ผลลัพธ์ประมาณนี้ครับ

    1 2014082002


    ถ้าตรงกันทั้งสองฝั่งก็ใช้ได้ครับ
เป็นไงบ้างครับ ไม่ยากเกินไปใช่มั้ยครับ หวังว่าจะมีประโยชน์นะครับ สวัสดีครับ

Saturday, August 16, 2014

สิ่งที่ควรทำหลังจาก clone vm linux(CentOS) guest

การที่เราโคลน vm สักตัวมาใช้ จะช่วยลดระยะเวลาในการติดตั้ง OS ได้มากเลยทีเดียวนะครับ แต่เมื่อโคลนเสร็จแล้วเราต้องทำอะไรบ้างล่ะ เรามาดูกันดีกว่าครับ

  1. แก้ชื่อเครื่อง
    # vi /etc/sysconfig/network

    แก้ไขตรง

    HOSTNAME=[New_Hostname]
  2. แก้ไขไฟล์ hosts
    # vi /etc/hosts

    ใส่ xx.xx.xx.xx(ip address ใหม่)     hostname(ใหม่)
    ส่วนอันเก่าก็ลบได้เลยครับถ้าไม่ได้ใช้
  3. แก้ mac address
    # vi /tc/udev/rules.d/70-persistent-net.rules

    ลบ mac address ที่ไม่ใช่ตัวปัจจุบัน
    ** เช็คได้จาก vm->edit setting->network adapter แล้วดูตรง mac address ครับว่าตรงกับอันไหน ก็ลบอันอื่นทิ้งครับ
  4. แก้ IP Address ครับ
    # vi /etc/sysconfig/network-scripts/ifcfg-eth(n)

    แก้ตรง

    IPADDR=
    NETMASK=
    GATEWAY=
เพียงเท่านี้ vm guest ตัวนี้ก็พร้อมใช้งานแล้วครับ

Monday, August 11, 2014

การสร้าง Standard virtual Switch บน vSphere client

หลังจากที่เรารู้จักกับ Standard virtual switch และ distributed virtual switch กันแล้ว คราวนี้เรามาสร้าง standard virtual switch กันเลยดีกว่าครับ
  • เปิด vsphere client และ log in ที่ esx host


  • คลิกที่ host ที่ต้องการ -> configuration -> networking -> add networking


  • เลือก virtual machine หรือ vm kernel ซึ่งความแตกต่างก็อยู่ในบทความที่แล้วนะครับ จากนั้นกด next ครับ


  • เลือก vmnic ที่ต้องการครับ เอาที่ up นะครับ แต่ในที่นี้ผมมีที่ up อยู่แค่พอร์ตเดียวและไม่อยากไปยุ่งครับก็ทดลองให้ดูละกันครับ จากนั้นก็กด Next โลดเลยครับ


  • ตั้งชื่อและ vlan ครับ จากนั้นก็ Next เลยครับ


  • กด finish ได้เลยครับ


  • เพียงเท่านี้เราก็ได้ standard virtual switch มาใช้งานแล้วครับ ง่ายๆเลยครับ


สำหรับครั้งนี้ก็จบลงเพียงเท่านี้้ครับ ครั้งหน้าจะมาสอนแบบ vmkernel นะครับ รอติดตามกันได้ครับ

Sunday, August 3, 2014

Standard virtual switch และ Distributed virtual switch

Virtual switch คืออะไร
จากที่คราวก่อนๆหน้านี้ เราได้พาตัวเองเข้าสู่โลกเสมือนกันมาครึ่งค่อนตัวแล้ว ดังนั้นคราวนี้เรามารู้จักอุปกรณ์เครือข่ายที่ทุกคนน่าจะรู้จักกันอยู่แล้วนะครับ นั่นก็คือ switch นั่นเอง แต่มันจะไม่ได้มาในรูปแบบที่เราจับต้องมันได้ แต่จะมาในรูปแบบของสวิทช์เสมือน (virtual switch) - - สวิทช์ธรรมดาก็ยุ่งพอแล้ว นี่ยังมาจำลองอีก แต่ข่าวดีก็คือ เราไม่ต้องใช้ command ในการตั้งค่าในส่วนนี้นะครับ แต่ข่าวร้ายก็คือ เราต้องไปตั้งค่าสวิทช์จริงๆให้ทำงานสัทพันธ์กันด้วย เอาล่ะครับ เรามารู้จักเจ้าสวิทช์เสมือนกันเลยดีกว่าครับ

virtual switch ใน vmware คือการใช้ซอฟท์แวร์จำลองการทำงานของ Layer 2 switch ครับ
virtual switch จะทำหน้าที่เป็นส่วนที่ทำให้ service ของ network ของ vm ทำงานตามที่เราต้องการครับ ซึ่่ง service ต่างๆ ก็จะมีอยู่ 3  แบบครับ
  1. Virtual Machine ใช้ Connect กันระหว่าง Virtual Machine กับ Physical Network หรือ ใช้คุยกันเองระหว่าง Virtual Machine
  2. VMKernel ใช้สำหรับติดต่อ Storage เช่น NFS, iSCSI หรือใช้สำหรับ VMware VMotion
  3. Service Console ใช้สำหรับ Manage ตัว ESX/ESXi หรือเรียกง่าย ๆ ว่า เป็น IP Address ของ Host ซึ่งจะถูกติดตั้งมาเป็น default เมื่อติดตั้ง ซึ่งก็จะชื่อ management network ที่เราเห็นๆกันนั่นเองครับ
ต่อมาก็มารู้จักกับ virtual switch แบบต่างๆกันต่อนะครับ
  1. virtual Standard switch เป็น virtual switch ที่สามารถคอนฟิกได้ใน esxi mode
  2. virtual Distributed switch เป็น virtual switch ที่ต้องคอนฟิกผ่าน vCenter เท่านั้น
การทำงานของ switch แบบต่างๆ
  • vStandard switch มีความสามารถในการทำงานเหมือนสวิทช์เลเยอร์2 ทั่วไป ดังภาพด้านล่าง

    vStandard switch
    ขอขอบคุณภาพจาก www.vmware.com
    ซึ่งจะอธิบาย concept คร่าวๆตามภาพได้ดังนี้ครับ
    - เราสามารถมี vNIC (Virtual Network Interface) ได้หลายตัวต่อ "ESXi host" ครับ
    - Operating system และ Application จะคุยกันผ่าน vNIC โดยใช้ device driver ซึ่ง vNIC จะ map กับ Physical NIC ไปยัง Network ข้างนอกได้
    - แต่ละ vNIC มี MAC Address ที่ generate ขึ้นมาและทำงานใน Network Layer 2
    - อีกหนึ่งข้างของ Virtual Switch จะเป็น Port Group ใช้ติดต่อ Virtual Machine โดยใช้ Uplink สู่ภายนอก
     virtual standard switch จะทำงานในแต่ละ host ดังนั้นเราจึงต้องคอนฟิกตามแต่ละ host และต้องทำทุกตัว
  • vDistributed switch จะเหมือนทำงานคล้ายกับ vSS เพียงแต่ทำงานได้ในระดับ datacenter จึงมี feature อำนวยความสะดวกเพิ่มมากขึ้น

    vDistributed switch
    ขอขอบคุณภาพจาก www.vmware.com
    - สามารถมี vNIC ตั้งแต่หนึ่งตัวหรือมากกว่า ต่อ 1 "Datacenter" ก็คือ Manage virtual switch ที่ vCenter Server ที่เดียว แล้ว apply ไปยัง Hosts ต่าง ๆ ซึ่งทุกๆ host จะเห็นเหมือนกัน
    - ใช้ IO Plane (hidden vSwitch) เป็นตัวควบคุม IO ของ Hardware และทำการ Forward Package
    - สามารถ Migrate Standard Switch ที่มีอยู่เป็น Distributed Switch ได้
    - ลดระยะเวลาในการติดต่อได้ถึง 20 - 25 %
    - สามารถทำ Traffic shaping ได้ทั้ง Inbound และ Outbound (vSS ทำได้แค่ Outbound)
    - รองรับ Third Party ต่าง ๆ ได้

    ตารางคุณสมบัติของ vDS และ VSS
    ขอขอบคุณภาพจาก www.vmware.com
  • ตารางเปรียบเทียบระหว่าง vDS และ vSS ครับ




นี่ก็เป็นข้อมูลเล็กน้อยนะครับสำหรับสวิทช์เสมือนจากค่าย VMware ส่วนการเลือกใช้อันนี้ก็แล้วแต่การออกแบบและความเหมาะสมของแต่ละที่นะครับ เพราะทางสายนี้มันไม่มีตายตัวครับ ยังไงก็หวังว่าบทความนี้จะเป็นประโยชน์นะครับ

เครดิต : www.vmware.com            : www.compspot.net/index.php?option=com_content&task=view&id=366&Itemid=72

Saturday, August 2, 2014

การสร้าง VM template และการ deploy template ด้วย VMware vsphere web client

VM Template คืออะไร vm template ก็คือ แม่แบบเสมือน ที่จะทำเครื่องจักรกลเสมือนมาไว้เป็นแม่แบบได้ ซึ่งมีประโยชน์มากสำหรับการทำโปรเจคเล็กใหญ่ที่จำเป็นต้องสร้างเครื่องจักรกลเสมือนหลายๆตัว ซึ่งแต่ละตัวใช้ระบบปฏิบัติการเดียวกัน ครั้นจะมานั่งติดตั้งทีละตัวก็ใช่ที่ จะโคลนใหม่ก็ช้า วันนี้เรามาเรียนรู้วิธีอีกวิธีหนึ่งกันเลยดีกว่าครับ

การสร้างแม่แบบเสมือนด้วยการ clone to template

  • ที่หน้า vSphere web client ดูที่หัวข้อ inventory แล้วเลือก vm and template ครับ



  • คลิกขวาที่ vm ที่เราต้องการนำมาทำเป็น template แล้วเลือก Clone to template.. ครับ


  • จากนั้นจะมี pop up ขึ้นมาครับ
    ให้เราทำการตั้งชื่อ template และเลือก datacenter ครับ


  • เลือก host(ESXi) ครับ


  • เลือก Datastore และ Disk Provision ครับ


  • ตรวจสอบความถูกต้อง และกด finish ได้เลยครับ


เพียงเท่านี้เราก็ได้ VM template มาไว้ใช้งานแล้วนะครับ ต่อไปก็มาถึงขั้นตอนการนำมันมาใช้กันดีกว่าครับ

การ deploy VM template นะครับเริ่มที่

  1. ในหน้า VM and Template คลิกขวาที่ template ที่ต้องการ แล้วเลือก deploy vm from this template... ครับ


  2. ตั้งชื่อให้กับ VM และเลือก datacenter ครับ


  3. เลือก host ที่ต้องการให้ทำหน้าที่ run vm ครับ


  4. เลือก datastore ที่ต้องการใช้เก็บไฟล์ของ vm ครับ


  5. จากนั้นถ้าต้องการแก้ไข VM hardware ให้ติ๊กถูกที่ customize this virtual machine hardware แล้วกด next ครับ ถ้าไม่ต้องการแก้ไขก็ไม่ต้องติ๊กถูกและกด next และข้ามไปข้อ 7 ได้เลยครับ


  6. ทำการปรับแต่ง vm ตามต้องการ


  7. ตรวจสอบความถูกต้อง และกด finish ได้เลยครับ


  8. สังเกตทางขวามือนะครับ จะมี job run อยู่


เพียงเท่านี้ก็จะได้ vm ใหม่ไว้ใช้งานโดยไม่ต้องมานั่งติดตั้ง OS ใหม่ที่ละตัวๆแล้วครับอยากได้กี่ตัวก็ deploy เอาเลยครับ สำหรับบทความนี้ก็ขอจบเพียงเท่านี้ละกันนะครับ มีอะไรสงสัย หรืออยากพูดคุยก็ติดต่อมาได้เลยนะครับ