การศึกษาได้มาซึ่งความรู้ ใช่ว่าสถาบันนะครับพี่น้อง

การศึกษาได้มาซึ่งความรู้ ใช่ว่าสถาบันนะครับพี่น้อง

การศึกษาได้มาซึ่งความรู้ ใช่ว่าสถาบันนะครับพี่น้อง

การศึกษาได้มาซึ่งความรู้ ใช่ว่าสถาบันนะครับพี่น้อง

การศึกษาได้มาซึ่งความรู้ ใช่ว่าสถาบันนะครับพี่น้อง

Saturday, July 7, 2012

กลไก Snapshot ใน Virtual Machine


“ Snapshot ”

Snapshot คืออะไร
Snapshot คือ การเก็บสถานะของ Virtual Machine ไว้สำหรับการเรียกใช้คืนในภายหลัง ซึ่งช่วยให้การใช้ Virtual Machine ในงานทดสอบระบบหรือทดสอบโปรแกรมต่างๆ สามารถทำได้สะดวกกว่าการใช้งานเครื่องคอมพิวเตอร์จริง อย่างไรก็ตามหลังจากใช้งานเสร็จแล้วไฟล์ Snapshot นั้นจะยังคงเก็บไว้บนฮาร์ดดิสก์ ซึ่งเราสามารถทำการลบออกได้เพื่อเป็นการประหยัดพื้นที่ฮาร์ดดิสก์ โดยวิธีการลบ Snapshot ของ Virtual Machine ใน VMware มีขั้นตอนดังนี้

ตัวอย่างกลไกการทำ Snapshot ใน VMware ESXI 5.0
ตัวอย่างเช่น สมมติว่าเรามีข้อมูลที่เป็น Text เช่น COMPUTINGแทนด้วยข้อมูลใน OS ที่เราจะทำการ Snapshot ข้อมูลนี้กระจัดกระจายกันอยู่ใน Disk
ในการสร้าง OS ใน Virtual Machine ครั้งแรก โปรแกรม Vmware จะสร้าง ไฟล์  .vmdk ขึ้นมาเพื่อเป็น Base Disk เป็นสถานะเริ่มต้นของข้อมูลและเก็บ Link ที่อยู่ของข้อมูลใน Hard Disk
                File System = .vmx
                File Datastore = .vmdk

ที่มาของรูป : https://www.ibm.com/developerworks/mydeveloperworks/blogs/pcclm/?lang=en

Step 1 : มีหลักการง่ายๆคือ " เก็บเฉพาะส่วนที่แตกต่างระหว่างสถานะปัจจุบันและสถานะเริ่มต้น "
ทำการเปรียบเทียบ Base Disk (.vmdk) กับ Current State ว่ามีข้อมูลไดเพิ่มขึ้นมาหรือข้อมูลใดถูกลบไป
Step 2 : มีหลักการง่ายๆคือ "ขณะที่มีการทำ Snapshot ข้อมูลที่มีการเปลี่ยนแปลงจะถูกบันทึกก่อนตามด้วยข้อมูลที่ถูกลบ (Block สีน้ำเงิน) โดยเทียบกับ Base Disk (.vmdk) " เมื่อมีการทำ Snapshot ไฟล์ที่ชื่อ Snapshot1.vmdk จะถูกสร้างขึ้น การเปลี่ยนแปลงระหว่างข้อมูลต้นฉบับและข้อมูลที่ทำการ Snapshot ไม่ได้เก็บไว้ใน Disk แต่จะมีการเขียนข้อมูลที่แตกต่างลง Snapshot1.vmdk file
ข้อมูลที่อยู่ในไฟล์ Snapshot1.vmdk จะเก็บเฉพาะส่วนที่แตกต่าง (อักษร E และ R)
Step 3 : ถ้ามีการทำ Snapshot อีกครั้งต่อจาก Snapshot อันแรก หลักการทำงานคือ ทำการอ่านข้อมูลจาก Current State และทำการเปรียบเทียบกัน Snapshot1.vmdk เพื่อดูว่ามีการเปลี่ยนแปลงอะไรบ้าง จากรูปจะเห็นว่า Snapshot1.vmdk (“COMPUTER”) และ Current State (“CONTAINER”) มีการเปลี่ยนแปลงคือ “TAINN” เพราะฉนั้น Snapshot2.vmdk จะเก็บเฉพาะ “TAINN”

ที่มาของรูป : https://www.ibm.com/developerworks/mydeveloperworks/blogs/pcclm/?lang=en

สรุปผลที่ได้จากการทำ Snapshot
Step1 - Base Disk  = COMPUTING
                BaseDisk.vmdk = COMPUTING
Step2 - Snapshot1 = COMPUTER
                                Snapshot1.vmdk = “ER”
Step3 - Snapshot2 = CONTAINER
                                Snapshot2.vmdk = “TAINN”

ตัวอย่างการทำ Snapshot ใน VMware Workstation 8.0 ( เครื่องผมลง ESXI ไม่ได้ครับ เนื่องจากไม่รองรับ มันน่าจะเป็นที่สถาปัตยกรรมของ CPU )
1.             เปิดโปรแกรม VMware ขึ้นมา และเลือก OS ว่าจะทำการ Snapshot ตัวไหน ในตัวอย่างผมเลือก RHEL 6

2.             ไปที่เมนู VM >>Snapshot >>Snapshot Manager

3.             แสดงหน้าต่างของ Snapshot Manager จะเห็นว่ายังไม่มีการทำ Snapshot เห็นแค่เพียง Current State เท่านั้น (You are here)

4.             ทำการสร้าง Snapshot ไปที่เมนู VM>>Snapshot>>Take Snapshot


5.             ตั้งชื่อ Snapshot และ Description กด Take Snapshot



6.             เข้าไปดูใน Folder ที่เก็บ VM จะเห็น file Snapshot1.vmsn เพิ่มขึ้นมา
  

7.             ตรวจสอบ Snapshot ที่ได้สร้างไว้เข้าไปที่เมนูในข้อ 2 จะเห็นชื่อ Test SnapShot


8.             ทดสอบ Restore Snapshot ที่ได้สร้างไว้


9.             ถ้าต้องการ Restore กด Yes


เกร็ดความรู้เล็กๆน้อยๆจากเว็บ
ที่มาของข้อมูล : http://www.thaiadmin.org/board/index.php?topic=146226.0
1. ถ้าทดสอบแล้วอยากใช้ต่อ โดยไม่อยากย้อนกลับไปจุดเดิมทำอย่างไร ?
ตอบ delete snapshot โดยการใช้ snapshot manager ให้ใช้ tools delele snapshot หรือ command commit snapshot เท่านั้น อย่าไป down guest แล้วไปลบ vmdk เอง เพราะ การ delete snapshot มันจะทำการ รวม vmdk version ก่อนหน้า กับ version ที่เราลบเข้าด้วยกัน

2. เผลอไปทำ Snapshot ไว้กับ guestOS ที่เป็น datacenter หรือ File server แล้วถอยไม่ได้
ตอบ เท่าที่ทราบนะครับ snapshot แต่ละ version จะสัมพันธ์กัน ถ้า version ไหนเสีย คุณจะเปิด guest ไม่ได้นะครับ ต้องแก้ไขโดยการ ถอยไป ยัง version file ก่อนที่ vmdk ที่เสีย

3. จากข้อ 2 หากจะใช้ต่อไปเลยไฟล์ที่ได้ก็จะมีขนาดใหญ่ขึ้นเรื่อย เป็น 2 เท่า 3 เท่า ... ทำให้เปลืองพื้นที่ใน datastore เราจะจัดการยังไงดี
ตอบ เท่าที่ ทราบ การทำ snapshot มันจะ ไปทำให้ vmdk version ก่อนหน้า เป็น read only เท่านั้น แล้วมันจะสร้าง file-00001.vmdk ขึ้นมาเพื่อใช้งาน ในการเพิ่ม ข้อมูลที่แก้ไข จาก version เดิม และ ส่วนที่เพิ่มขึ้นมาใหม่  ยิ่งถ้า vmdk ข้อมูลภายใน แต่ละ version ต่างกันมาก ขนาดก็มากขึ้น   ถ้าคุณคิดว่าคุณไม่ได้ใช้ version ที่คุณทำ snapshot ไหนไว้แล้วแน่ๆ คุณก็ลบ snapshot version นั้น ออกไป โดยใช้ snapshot manager ก็ได้ครับ ถ้าไม่ต้องการ snapshot อันไหนก่อนหน้าก็สามารถลบได้ผ่าน snapshot manager
***การลบ snapshot จะต้องทำผ่าน snapshot manager เท่านั้น
ห้ามทำการ browse datastore แล้วไปลบไฟล์  .vmdk โดยเด็ดขาด

Backup Strategies กลไกการ Backup


“Backup Strategies”
แนวความคิดในการทำสำรองข้อมูลและการกู้คืนข้อมูลมีดังรูปต่อไปนี้


รูปแบบการ Backup ข้อมูลมีอยู่ 3 รูปแบบหลักๆ ดังนี้
Full Backup
                การทำ Full Backup  คือการ Backup ข้อมูลทั้งหมดไม่ว่าจะมีการเปลี่ยนแปลงหรือไม่
Incremental Backup
                การทำ incremental backup คือ การ backup เอาเฉพาะเนื้อ data ส่วนที่เพิ่มขึ้นมา นั่นเอง ซึ่งการ backup ครั้งแรก เราต้อง backup เป็น full backup ก่อน เพื่อนำมาเป็นฐาน (based backup) แล้วจึงทำการ incremental backup ซึ่งเป็นการเอาเฉพาะส่วนที่เพิ่มเติมจาก full backup มาเก็บ
Differential Backup
                การทำ  Differential Backup คือ การ Backup ข้อมูลทั้งหมดที่มีการเปลี่ยนแปลงนับจากการทำ Full Backup ครั้งล่าสุด

รูปเปรียบเทียบ Backup แบบต่างๆ
ทำอย่างไรระบบจะรู้ว่าต้อง Backup ตรงไหน ?
Backup Archive bit
                Archive bit คือ พารามิเตอร์หนึ่งของการ Backup เมื่อไหร่ที่มีการเปลี่ยนแปลงการ Backup ข้อมูล archive bit จะถูกกำหนดค่าเป็น 1 หรือ 0 เมื่อไรก็ตามที่ไฟล์ถูกสร้างหรือเปลี่ยนแปลงแก้ไข ข้อมูลระบบไฟล์จะเซตค่าของ archive bit เป็น 1 เมื่อเกิดการ Backup ข้อมูลซอฟต์แวร์ในการแบ็กอัพจะเคลียร์ค่า archive bit โดยการตั้งค่ากลับเป็น 0
โดยทั่วไปแล้วการ Backup แบบ differential และ incremental จะดูที่ archive bit ของไฟล์ อาจจะมีบางโปรแกรมสามารถเลือกใช้ modified time แทนก็ได้  ดังนั้นการ เลือกวิธีการ backup หลายๆแบบผสมกันใน backup plan จะต้องคำนึงถึงการ set  และ clear archive bit ด้วย ไม่อย่างนั้นไฟล์ที่ backup เอาไว้อาจจะไม่เป็นไปตามที่ต้องการ
ถ้ามีการทำ full backup จะมีการ clear archive ทั้งหมด การทำ incremental หรือ differential backup ต่อจาก full backup จะเริ่มต้นใหม่
ถ้าเริ่มต้น การ backup แบบ incremental หรือ differential โดยที่ไม่มีการทำ full backup เอาไว้ก่อน ผลการ backup ก็จะไม่สมบูรณ์


รูปแสดงการเซต Archive bit ตำแหน่งต่างๆของการ Backup ทั้ง 3 แบบ


สรุปง่ายๆ ของการเซต Archive bit
                Full Backup ทำการ clear archive และ set archive ใหม่ทุกครั้งที่มีการ Backup
                Incremental Backup ทำการ clear archive และ set archive ใหม่ทุกครั้งที่มีการ Backup
                Differential Backup ไม่ทำการ clear archive เนื่องจากต้อง Backup ต่อจาก Full Backup ทุกครั้ง

เปรียบเทียบข้อดีข้อเสียของการ Backup แบบต่างๆ
ข้อดี
Full Backup  แต่ละข้อมูลการ Backup อิสระต่อกันเป็นก้อนเดียวจึงสามารถเลือก Backup ได้
Incremental Backup ใช้ความจุน้อยเนื่องจากเก็บเฉพาะข้อมูลที่เพิ่มขึ้นมาหลังการ Incremental Backup ครั้งล่าสุด
Differential Backup ใช้ความจุน้อยแต่มากกว่า Incremental Backup เนื่องจากเก็บเฉพาะข้อมูลที่เพิ่มขึ้นมาหลังการ Full Backup ครั้งล่าสุด ถ้าเกิดการเสียหายของข้อมูล Differential Backup ครั้งก่อนก็สามารถใช้ข้อมูล Backup วันก่อนหน้าได้
ข้อเสีย
                Full Backup ข้อมูลมีขนาดใหญ่ถ้าข้อมูลเสียก็เสียทั้งก้อน
                Incremental Backup ถ้าข้อมูล Incremental Backup วันก่อนหน้าเสียหาย ข้อมูล Backup ล่าสุดจะใช้งานไม่ได้
                Differential Backup ทั้งแบบ Differential และแบบ Incremental ต้องอาศัย Full Backup ในการทำ Backup จึงต้องใช้ข้อมูลสองชุด


รูปแสดงการเปรียบเทียบเมื่อมีการเสียหายของการ Backup แบบ Incremental และ Differential

Sender Policy Framework (SPF) คือ


Sender Policy Framework (SPF)

Sender Policy Framework (SPF)  เป็นวิธีการหนึ่งที่จะช่วยให้ตรวจสอบว่าอีเมลที่เราได้รับนั้น เป็นอีเมลที่มาจากโดเมนของผู้ส่งจริงหรือไม่  โดยที่ผู้ที่เป็นเจ้าของโดเมนจะต้องทำการเพิ่ม SPF record ให้กับโดเมนของตนเอง  ด้วยการระบุลงไปว่าอีเมลที่มาจากโดเมนนั้นๆ จะถูกส่งออกมาจากเซิร์ฟเวอร์เครื่องใด หมายเลข IP Address อะไรบ้าง
วิธีการนี้จะช่วยให้สามารถกลั่นกรอง Spam mail ได้ดียิ่งขึ้น  เพราะ Spammer มักจะปลอมตัวแอบใช้โดเมนของคนอื่นในการส่ง Spam mail ดังนั้นเมื่อตรวจสอบได้ว่าเป็นการปลอมแปลงโดเมน การคัดแยกอีเมลให้ไปอยู่ในกลุ่มของ Spam mail  ก็ทำได้มีประสิทธิภาพขึ้น

ตัวอย่างการทำงานของระบบ SPF ของ Microsoft products

ที่มาของภาพ : http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/
ขั้นตอนกระบวนการ SPF มีดังนี้
1.             ผู้ส่ง (sender) ส่งจดหมายถึง ผู้รับ (receiver)
2.             Mail server ของผู้รับขาเข้าได้รับ e-mail และ Mail server ส่ง sender ID framework (SIDF) ไปตรวจสอบ SPF record ยัง DNS server ว่า Domain กับ IP ตรงกันหรือไม่
3.             ทาง DNS ตรวจสอบ SPF record และส่ง SPF result กลับมายัง Mail sever ว่า Pass หรือ None ถ้า Pass ต่อไป Mail server ทำการส่งต่อ e-mail ไปตรวจสอบ permission ว่ามีสิทธิ์เข้าถึงหรือไม่
4.             ถ้าทำการตรวจสอบ permission ผ่าน ต่อไป เป็นการตรวจสอบ Reputation Data ว่า e-mail นี้ถูกกำหมดเป็น Spam, Junk , backlist หรือ e-mail ที่ไม่ต้องการหรือไม่
5.             เมื่อตรวจสอบ Reputation แล้วขั้นตอนต่อไปคือแยกประเภทของ e-mail ถ้าระบบคาดว่าน่าจะปลอดภัยจะเข้า inbox ถ้าไม่ปลอดภัยจะเข้ากล่อง junk , spam , Quarantine , Block เป็นต้น ทั้งนี้ขึ้นอยู่กับ policy ที่ได้กำหนดไว้

Windows PowerShell


Windows PowerShell

Powershell เป็นลักษณะการทำงานเหมือน command-line และสามารถทำงานเป็นลักษณะภาษา script ได้ด้วยครับ
Windows PowerShell เป็น shell ของ Windows ที่ทำออกมาแข่งกับ shell ของ Unix เช่น Bash Shellเหตุเป็นเพราะ Admin ติดนิสัยทำงานผ่าน shell แต่จะใช้ DOS shell มันก็มีความสามารถไม่มากเท่ากับพวก Bash ดังนั้นทางออกคือสร้าง PowerShell ที่มีความสามารถมากขึ้น มี Feature ให้เท่าเทียมกับยูนิกซ์ และอีกเหตุผลคือทาง Microsoft ต้องการที่จะเอาชนะ Unix ทางด้าย Server
PowerShell 1.0 มาพร้อมกับ Windows Server 2008 แต่สามารถดาวน์โหลดมาใช้กับ XP/Vista/2003 ได้ ส่วน Windows 7 และ Windows Server 2008 R2 จะเป็น PowerShell 2.0

ตัวอย่างการใช้ PowerShell ในเครื่องผมเองครับ Windows7 Home Premium 64 bit
สามารถใช้คำสั่งพื้นฐานของ Unix หรือ Linux ได้ เช่น PWD , MV , RM , LS
และคำสั่งพิเศษของ Powershell เช่น
Get-Content ( คำสั่งเปิดอ่าน Text file ได้เกือบทุกนามสกุล )
Add-Content ( คำสั่งแทรก Text )
หน้าตาของ Windows PowerShell

ทดสอบใช้คำสั่งพื้นฐาน Unix ใน Powershell และคำสั่งของ PowerShell

ตัวอย่าง Windows PowerShell ISE ที่เอาไว้สำหรับเขียน Script Code เป็น Syntax ของ PowerShell เอง เหมือนกับการเขียนโปรแกรมทั่วไป มีฟังก์ชันให้เรียกใช้มากมาย หรือสามารถเขียนขึ้นมาเองก็ได้ครับ


สามารถ Run Script ได้ด้วยการกดปุ่ม Play  สีเขียว
Console บนสุดจะเป็นที่เขียน Script
Console กลางเป็นหน้าจอแสดง Output
Console ล่างสุดเป็นส่วนของการเขียน Command

แสดงตัวอย่าง Output การ Run Script


ข้อดีของ PowerShell
1.             สามารถใช้คำสั่งทั้งของ Windows และ Unix ได้
2.             สามารถเขียน Script ครั้งเดียวแต่ Run ได้หลายงาน คือไม่ต้องมา Command ใหม่ทุกครั้งที่ Config ใหม่
3.             ใช้โปรแกรมง่ายถ้ารู้คำสั่ง
4.             และความสามารถอื่นๆ อีกมากมายที่ผมยังไม่เข้าใจ

LDAP (Lightweight Directory Access Protocol )


“ LDAP ”

รู้จักกับ LDAP
Lightweight Directory Access Protocol ( LDAP นิยมอ่านว่า "แอล-แด็ป") เป็น Protocol ที่พัฒนามาจาก Protocol X. 500 ซึ่งใช้ในการเข้าถึงและ Update ข้อมูลของ Directory ซึ่ง Directory ในทาง Computer ที่จริงก็อาจเรียกได้ว่าเป็น Database แบบพิเศษหรือ Data repository ที่บรรจุรายละเอียดของ Object ต่างๆ เช่น Users, Application, Files, Printer และอื่นๆ รวมทั้ง Security information ของ Object เหล่านี้ด้วย โดยข้อแตกต่างของ Directory กับ Database ปกติ
LDAP มีโครงสร้างคล้ายกับระบบแฟ้มข้อมูลแบบลำดับขั้นของ UNIX (UNIX hierarchical file system) โดยมีการเรียกในแต่ละลำดับชั้นดังนี้
root คือ ส่วนบนสุดของระบบ สามารถใส่ข้อมูลได้
node คือ ส่วนย่อยๆ ออกมาจาก root สามารถใส่ข้อมูล และบาง node มี child nodes หรือ node ย่อยๆ ลงไปอีกได้ เป็นลำดับขั้นเพื่อบันทึกข้อมูลที่แตกต่างกันไป
เรื่องของความสัมพันธ์เป็นแบบย้อนหลัง ( backwards ) เช่น การอ่านชื่อจากซ้ายไปขวา สามารถอ่านได้จาก entry ล่างขึ้นไปด้านบน

แสดงโครงสร้างของ LDAP

การอ่าน Directory Information Tree ( DIT ) ตัวอย่างเช่น พนักงานมี 2 คน คือ Chakrit Pha-In และ Rujirapong Ritwong ซึ่งเป็น cn= Common Name โดย Chakrit Pha-in ทำงานอยู่ในฝ่าย Sale ซึ่ง
ou = Organization Unit ทำงานอยู่ในสาขาที่ประเทศ USA คือ c=usaโดย c=Country ในองค์กรหรือบริษัท คือ o=SOFTNIX ส่วน Rujirapong Ritwong ทำงานอยู่ในแผนก Technical ในสาขาประเทศไทย ในองค์กรหรือบริษัท
จากความหมายและภาพที่กล่าวมาแล้ว สามารถเขียนเป็นโครงสร้างแบบของ LDAP ได้ดังนี้
Cn=Chakrit Pha-in
OU=Sale
                C=USA
o=SOFTNIX
Cn=Rujirapong Ritwong
                                OU=Technical
C=Thailand
o=SOFTNIX

LDAP Attribute
จากที่กล่าวมาในข้างต้นโครงสร้างของ LDAP มีอยู่หลาย Node ด้วยกัน ในแต่ละ Node จะมี Attribute ซึ่งเรียกว่า Entry Attribute โดย Entry Attribute นี้จะแบ่งออกเป็น Attribute Type และ Attribute Value ตัวอย่างเช่น
Attribute Type = mail
Attribute Value = example@Softnix.com
นั้นหมายความว่าการเก็บรายละเอียดต่างๆ ภายใน LDAP จะถูกกำหนดข้อมูลลงใน Attribute ต่างๆ การออกแบบ Attribute ต่างๆ นั้น ก็สามารถออกแบบขึ้นคล้ายๆ การออกแบบฐานข้อมูลเชิงสัมพันธ์นั้นเอง สำหรับ LDAP การออกแบบ Attribute เพื่อให้เหมาะแก่การใช้งานด้านต่างๆ



แสดงตัวอย่างโครงสร้างของ LDAP

ข้อแตกต่างระหว่าง Directory และ Database
Directory คือ List ของข้อมูลซึ่งมีการจัดลำดับและมีรายละเอียดปลีกย่อยต่างๆ ลงไปอีก เช่น สมุดโทรศัพท์ก็ถือว่าเป็น Directory เพราะในสมุดโทรศัพท์จะมีชื่อ รายนาม และเบอร์โทร หรืออาจจะมีเบอร์เพจเจอร์ ซึ่งสมุดโทรศัพท์เราจะลำดับตามรายชื่อผู้ใช้งาน
Directory เป็น Database พิเศษแต่ไม่ใช่ Database เพราะ Directory สร้างขึ้นมาเพื่อมีลักษณะเฉพาะบางอย่าง เพิ่มขึ้นมา และมีบางส่วนเหมือน Database ลักษณะที่สำคัญของ Directory คือ สร้างมาเพื่อเน้นการเข้าถึง (Read, Search) แต่ไม่ได้ทำมาสำหรับการ Update (Write) บ่อย ๆ เช่น ข้อมูลเบอร์โทรของคนอาจจะมีคนเข้ามาค้นหาวันละเป็นพันครั้ง ดังนั้น Directory จึงเหมาะสำหรับการค้นหาบ่อย ๆ แต่การ Update จะเป็นหน้าที่ของ Admin หรือเจ้าของข้อมูลนั้นเองชึ่งมีเพียงไม่กี่คนที่สามารถ Update ได้
Directory มีลักษณะการทำงานในการเก็บข้อมูลการเปลี่ยนแปลงไม่บ่อย ( Static Data ) ไม่เหมาะกับการเก็บข้อมูลที่เปลี่ยนแปลงบ่อย ( Dynamic Data ) เช่น ข้อมูลของ Printer ความสามารถในการ Print ควรเก็บไว้ใน Directory แต่ Job Queue ของ Printer ที่มีการเปลี่ยนแปลงบ่อยไม่ควรเก็บไว้ใน Directory
ข้อมูลใน Directory บางครั้งอาจเป็นข้อมูลที่ไม่ถูกต้อง (ในแง่ของผู้ใช้ ไม่ใช่ระบบ) เช่น ที่อยู่ของคนอาจไม่ถูกต้องเพราะคนคนนี้ย้ายที่อยู่ไปแล้ว ดังนั้นไม่ควรเก็บข้อมูลที่ Sensitive ( เช่น ยอด Balance ของบัญชี ) เอาไว้ที่ Directory
การใช้ Database เก็บข้อมูลของ Application เช่น การเก็บข้อมูลของลูกค้าในระบบ Billing เมื่อเราเพิ่มระบบอื่นเข้าไปเช่น Mail ทำให้ Admin ยุ่งยากอาจจะต้องเพิ่ม Column เข้าไปในตารางที่เก็บข้อมูลลูกค้า แต่ถ้าใช้ Directory จะง่ายต่อการ Extend
Database จะใช้ SQL แต่ Directory จะมีภาษาที่ต่างไปและจะช่วยให้เข้าถึงได้เร็วขึ้น ความแตกต่างระหว่าง Database และ Directory ทำให้ผู้ออกแบบระบบต้องคำนึงถึง และ เข้าใจในข้อจำกัดของความแตกต่างทั้งสองเพื่อที่จะได้แบ่งแยกได้ถูกว่าข้อมูลชนิดไหนควรจะเก็บลง Database หรือ Directory

การใชังาน LDAP Server

LDAP นั่นถูกสร้างมาเพื่อเป็น digital directory จึงสามารถนำไปใช้ได้หลายอย่างไม่ว่าจะเป็นสมุดโทรศัพท์หรือนำไปใช้เป็นฐานข้อมูล หรือเก็บโครงสร้างข้อมูลแบบที่ต้องการ โดยในทางเทคนิคแล้วอาจพูดได้ว่า LDAP ให้บริการการสืบค้นพร้อมการกรองข้อมูลที่ซับซ้อน แสดง entity พร้อมด้วย attribute ที่อยู่ในโครงสร้างที่ซับซ้อน และให้บริการดึงข้อมูลที่ต้องการ
การ ใช้งานที่พบบ่อยของ LDAP อาจจะเป็นระบบจัดการผู้ใช้แบบศูนย์กลาง โดยระบบจะจัดเก็บข้อมูลผู้ใช้ไม่ว่าจะเป็น username,password,ชื่อจริง และแผนก เมื่อผู้ใช้ต้องการเข้าใช้ระบบอื่นๆบนเครือข่ายเช่น web application, email server ระบบเหล่านั้นก็จะมาตรวจสอบ permission กับ LDAP การบริหารรายชื่อผู้ใช้จึงได้สะดวกที่จุดเดียวคือ LDAP
ต่อไปเป็นรูปตัวอย่างการทำงานของการ Access เข้าไปในเว็บ Google  ซึ่งขั้นตอนได้แสดงในรูป เนื่องจากขั้นตอนการ Authentication ผ่าน LDAP Server นั้นจะแตกต่างกันแล้วแต่การออกแบบ จึงไม่ได้แสดงรายละเอียดมากครับ

แสดง 9 ขั้นตอนการ Access Web Server ของ Google



ตัวอย่างของการออกแบบโครงสร้าง LDAP

ข้อดีและข้อเสียของ LDAP
ข้อดีของ LDAP
LDAP เก็บข้อมูลเป็นโครงสร้างแบบต้นไม้ ซึ่งสามารถเก็บข้อมูลแยกกันอยู่หลายๆ เครื่องได้โดยแยกตามโครงสร้างของต้นไม้
LDAP สามารถทำงานได้ทั้งบนโปรโตคอลแบบ Secure และไม่ Secure
ระบบ Authentication บน Linux สามารถใช้งานผ่าน LDAP ได้อย่างสมบูรณ์
สามารถทำ Replication ได้
ข้อเสียของ LDAP
การคอนฟิกยุ่งยากมาก ต้องใช้คำสั่งเฉพาะของ LDAP ในการเพิ่ม/ลบผู้ใช้ออกจากฐานข้อมูลเท่านั้น โครงสร้างข้อมูลซับซ้อน