การจัดการหน่วยเก็บ Storage Management นงลักษณ์ พรมทอง และวิเชษฐ์ พลายมาศ การจัดการหน่วยเก็บ Storage Management
Mass-Storage Systems Overview of Mass Storage Structure Disk Structure Disk Attachment Disk Scheduling Disk Management Swap-Space Management RAID Structure Stable-Storage Implementation Tertiary Storage Devices Operating System Issues Performance Issues
Learning Objectives เพื่อศึกษาถึงโครงสร้างการหน่วยเก็บมวลสูง (mass-storage structure) เพื่อให้เข้าใจเกี่ยวกับการทำงานของหน่วยเก็บมวลสูงประเภทดิสก์ เพื่อให้เข้าใจถึงขั้นตอนวิธีการจัดตารางของดิสก์ การเพิ่มประสิทธิภาพการทำงาน การจัดระเบียบดิสก์ การจัดการบล็อกเริ่ม บล็อกที่เสียหาย และการสับเปลี่ยนพื้นที่ว่างชั่วคราว โครงสร้างหน่วยความจำสำรอง
โครงสร้างจานแม่เหล็กหรือดิสก์ (disk structure) เป็นอุปกรณ์ประเภทที่สามารถเข้าถึงข้อมูลโดยตรงหรือแบบสุ่มได้ (direct-access storage devices: DASD) มีความโดดเด่นในด้านความเร็ว ขนาด และต้นทุน ส่วนประกอบสำคัญ หัวอ่าน-เขียน (read-write head) ซึ่งฝังติดอยู่บนแขนดิสก์ (disk arm) จะลอยอยู่เหนือพื้นผิวเรียบๆ ของดิสก์ ร่อง (track) เป็นการแบ่งส่วนของพื้นผิวออกเป็นร่องวงกลม ซึ่งสามารถแบ่งเป็นส่วนย่อยๆ ขนาดที่เท่ากันได้ เรียกว่า เซกเตอร์ (sector) ไซลินเดอร์ (cylinder) คือแต่ละร่อง (track) ที่อยู่ในแนวเดียวกันของทุกแผ่นดิสก์ รอบต่อนาที (rpm-round per minute)
(disk structure) (cont.) ความเร็วของดิสก์มาจาก 2 ส่วน transfer rate มีหน่วยวัดเป็นเมกะบิตต่อวินาที (megabit per second) positioning time หรือ random access time มีหน่วยวัดเป็นมิลลิวินาที (millisecond) ประกอบด้วย seek time เป็นเวลาที่ใช้ในการเคลื่อนหัวอ่านไปยังร่อง (track) ที่ต้องการ rotational latency เป็นเวลาที่ใช้ในการค้นหาเซกเตอร์ที่ต้องการ ถ้าพื้นผิวเสียหาย เรียกว่า แผ่นพัง (disk crash) ส่วนหัวอ่าน-เขียนเสียหายเรียกว่า หัวพัง (head crash) Drive ส่งข้อมูลไปยังคอมพิวเตอร์ผ่าน I/O bus เช่น EIDE, ATA, SATA, USB, Fibre Channel, SCSI Host controller หรือ disk controller ใช้กับ disk array หน่วยที่เล็กที่สุดทางตรรกะในการอ้างอิงถึงพื้นที่บนดิสก์เรียกว่า บล็อกทางตรรกะ (logical block)
Moving-head Disk Machanism
Disk Attachment SCSI เป็นบัสชนิดหนึ่ง สามารถเชื่อมต่อได้ถึง 16 อุปกรณ์บนสายเคเบิ้ลเพียงเส้นเดียว SCSI initiator requests operation และ SCSI targets perform tasks แต่ละ target สามารถเพิ่มได้ถึง 8 logical units (disks attached ไปยัง device controller) FC คือ high-speed serial architecture สามารถ switched fabric ด้วย 24-bit address space – เป็นพื้นฐานของ storage area networks (SANs) สำหรับหลาย hosts attach ที่ต่อไปยังหลาย storage units สามารถมี arbitrated loop (FC-AL) ถึง 126 devices
Network-Attached Storage Network-attached storage (NAS) เป็นหน่วยเก็บเชิงตรรกะที่ใช้งานผ่านเครือข่ายมากกว่าจะเชื่อมต่อผ่านบัสเดียวกันจริงๆ ใช้ NFS และ CIFS เป็น protocols ใช้งานผ่าน remote procedure calls (RPCs) between ระหว่าง host กับ storage New iSCSI เป็น protocol ใหม่ใช้ IP network กับ SCSI protocol
Storage Area Network ใช้กันแพร่หลายในสภาพแวดล้อมของหน่วยเก็บขนาดใหญ่ มีหลาย hosts attached กับหลาย storage arrays - ยืดหยุ่น
การจัดตารางดิสก์ Disk Scheduling หน้าที่ของ OS อย่างหนึ่งที่มีต่อจานแม่เหล็กก็คือ การใช้จานแม่เหล็กอย่างมีประสิทธิภาพ สำหรับดิสก์ ประสิทธิภาพหมายถึงความเร็วในการเข้าถึงและแบนด์วิดท์ของจานแม่เหล็ก จุดประสงค์คือการลดเวลา seek time Seek time seek distance Disk bandwidth เป็นเวลาเฉลี่ยที่ใช้ในการถ่ายโอนข้อมูลที่จัดเก็บบนดิสก์ไปยังหน่วยความจำ หาได้จากจำนวนรวมของไบต์ที่โอนย้าย หารด้วยเวลาตั้งแต่การร้องขอสำหรับบริการแรกจนกระทั่งการโอนย้ายเสร็จเรียบร้อย
Disk Scheduling (Cont.) มีหลาย algorithms ในการ schedule disk I/O requests ตัวอย่าง a request queue (0-199). 98, 183, 37, 122, 14, 124, 65, 67 Head pointer 53
มาก่อนได้ก่อน FCFS: First-Come First-Serve จากภาพแสดงจำนวนรวมของการเคลื่อนที่หัวอ่านจำนวน 640 cylinders
เวลาเวลาสั้นสุดได้ก่อน SSTF: Shortest –seek-time-first หัวอ่านจะเคลื่อนที่ไปยังไซลินเดอร์ที่ใกล้ที่สุดหรือสั้นสุดก่อน ถึงจะเคลื่อนที่ไปยังไซลินเดอร์ต่อไป SSTF scheduling จัดเป็นรูปแบบของการจัดตารางแบบงานสั้นที่สุดได้ก่อน (Shortest-job-first : SJF) อาจเป็นสาเหตุให้เกิดการรอคอยอย่างไม่รู้จบ (starvation) ของการร้องขอบางอย่างได้ มีการเคลื่อนย้ายหัวอ่านรวม 236 cylinders
SSTF (Cont.)
SCAN หัวอ่านจะเริ่มอ่านจากที่ด้านใดด้านหนึ่งของดิสก์และจะเคลื่อนที่ไปอีกสุดขอบของอีกด้านหนึ่ง โดยจะให้บริการก็ต่อเมื่อหัวอ่านเคลื่อนที่ไปถึงที่ไซลินเดอร์นั้น บางครั้งเรียกว่า elevator algorithm มีการเคลื่อนย้ายหัวอ่านรวม 208 cylinders
SCAN (Cont.)
C-SCAN (circular) เพื่อแก้ปัญหาที่เกิดขึ้นกับแบบ SCAN แต่จะเริ่มเคลื่อนย้ายหัวอ่านจากปลายขอบของดิสก์ด้านใดด้านหนึ่งแล้วเคลื่อนไปอีกด้านหนึ่งโดยให้บริการในระหว่างที่เคลื่อนย้าย เมื่อหัวอ่านเคลื่อนไปจนถึงสุดขอบของดิสก์อีกด้านหนึ่งจึงย้อนกลับมาตั้งหลักที่จุดเริ่มต้นใหม่อีกครั้งโดยไม่ให้บริการในระหว่างทางที่เคลื่อนหัวอ่าน C-SCAN เป็นสิ่งจำเป็นสำหรับขั้นตอนวิธีที่จัดการ cylinders เป็นวง ซึ่งล้อมรอบจาก cylinders สุดท้ายไป cylinders
C-SCAN (Cont.)
C-LOOK เป็น Version ในทางปฏิบัติของ C-SCAN โดยปกติแล้วแขนของหัวอ่านจะเคลื่อนที่ไปด้านใดด้านหนึ่งในระยะทางที่ไกลเท่าที่มีการขอใช้บริการจากไซลินเดอร์เท่านั้น และจะเคลื่อนที่กลับไปอีกด้านหนึ่งทันทีโดยไม่จำเป็นต้องเคลื่อนไปให้สุดขอบของดิสก์
C-LOOK (Cont.)
Selecting a Disk-Scheduling Algorithm SSTF ใช้กันโดยทั่วไปและเป็นธรรมชาติ SCAN และ C-SCAN สามารถรองรับงานได้ดีที่สุดในสภาพแวดล้อมที่มีการใช้งานดิสก์อย่างหนัก สามารถลดการเกิดภาวะงูกินหรือรออย่างไม่รู้จบได้ ประสิทธิภาพย่อมขึ้นอยู่กับจำนวนและชนิดของการร้องขอ วิธีการจัดสรรแฟ้ม (file allocation method) มีผลโดยตรงต่อประสิทธิภาพของ disk-scheduling OS ควรมีหลายทางเลือกในการใช้ disk-scheduling เพื่อปรับให้เหมาะสมกับการร้องขอรูปแบบต่างๆ ได้ ควรใช้แบบ SSTF หรือแบบ LOOK เป็นพื้นฐาน
การจัดการดิสก์ Disk Management Low-level formatting, หรือ physical formatting — กระบวนการจัดรูปแบบ track และ sectors เพื่อที่ disk controller ใช้ในการอ่านและเขียน ในการที่ OS จะใช้ดิสก์จัดเก็บำฟล์ จำเป็นต้องบันทึกค่าต่างๆ ของโครงสร้างข้อมูลบนดิสก์ก่อน โดย partition คือการแบ่งพื้นที่ดิสก์ออกเป็นหนึ่งกลุ่มหรือหลายกลุ่มไซลินเดอร์ เพื่อแยกพื้นที่ทางตรรกะบนดิสก์ออกจากกัน Logical formatting หรือ “การสร้างระบบแฟ้ม” Boot block ในการเริ่มต้นระบบ The bootstrap จัดเก็บใน ROM Bootstrap loader program sector sparing Methods ใช้ในการจัดการ bad blocks
MS-DOS Disk Layout
Booting from a Disk in Windows 2000
การจัดการพื้นที่ว่างที่ใช้ในการสับเปลี่ยน Swap-Space Management พื้นที่ว่างที่ใช้ในการสับเปลี่ยน (Swap-space) – คือ Virtual memory ที่ใช้ disk space ขยาย main memory เป็นกระบวนการเคลื่อนย้ายข้อมูลบนพื้นที่ระหว่างดิสก์กับหน่วยความจำ การสับเปลี่ยนจะเกิดขึ้นในกรณีที่พื้นที่ว่างในหน่วยความจำหลักเหลืออยู่น้อยในระดับวิกฤติ เทคนิคสำคัญที่ใช้ในกระบวนการสับเปลี่ยนพื้นที่ว่างได้แก่ หลักการสับเปลี่ยน (swapping) การจัดการหน่วยความจำเสมือน (VM management) การสลับหน้า (paging)
Data Structures for Swapping on Linux Systems
RAID Structure RAID – การมี multiple disk drives เพื่อreliability ผ่าน redundancy. RAID แบ่งออกเป็น 6 ระดับ
RAID (cont) Several improvements in disk-use techniques involve the use of multiple disks working cooperatively. Disk striping uses a group of disks as one storage unit. RAID schemes improve performance and improve the reliability of the storage system by storing redundant data. Mirroring or shadowing keeps duplicate of each disk. Block interleaved parity uses much less redundancy.
RAID Levels
RAID LEVEL 0: Non-Redundant Stripping
RAID LEVEL 1
RAID LEVEL 2
RAID LEVEL 3
RAID LEVEL 4
RAID LEVEL 5
RAID LEVEL 6
RAID (0 + 1) and (1 + 0)
การติดตั้งดิสก์ Disk Attachment การติดตั้งดิสก์สามารถทำได้ 2 ทาง หน่วยเก็บที่ติดตั้งอยู่กับโฮสต์ (Host attached Storage) ผ่าน I/O port หน่วยเก็บที่ติดอยู่กับเครือข่าย (Network attached storage) ผ่าน network connection
Network-Attached Storage
Storage-Area Network
Operating System Issues งานหลักของ OS การจัดการอุปกรณ์เชิงกายภาพ และการแสดง (virtual machine abstraction) ไปยังแอพพลิเคชัน สำหรับ hard disks, OS จัดหา abstraction 2 ประการ Raw device – array ของ data blocks File system – OS queues และ schedules ของการร้องขอที่แทรกสลับเข้ามาจากแอพพลิเคชันต่างๆ
Application Interface OS ส่วนใหญ่จะมีการจัดการ removable disks เช่นเดียว fixed disks ทั่วไป – ดิสก์ชุดใหม่ๆ จะมีการจัดระเบียบ (formatted) และสร้าง file system มาให้แล้ว Tapes จัดเป็นสื่อแบบ raw storage medium และแอพพลิเคชันจะไม่เปิดไฟล์จากเทปโดยตรง แต่จะเปิดเนื้อหาของไฟล์ทั้งหมดเหมือนเป็นไดรฟ์แบบ raw device โดยปกติ tape drive จะสงวนไว้สำหรับการใช้งานแบบเอกสิทธิ์ (exclusive use) ของ application นั้น บางครั้ง OS อาจไม่ได้บริการต่างๆ ระบบไฟล์ที่เพียงพอ ดังนั้นapplication จะต้องตัดสินเองว่าจะใช้ array of blocks อย่างไร ส่วนเทป ทุกๆ application จะสามารถเรียกใช้งานได้ มีวิธีจัดการ และเรียกใช้งานข้อมูลทั้งหมดจากเทปได้จากโปรแกรมที่สร้างขึ้น
ความเร็ว Speed มีประเด็นสำคัญ 2 ประการในการตัดสินใจเลือกประเภทหน่วยเก็บ ได้แก่ bandwidth และ latency. Bandwidth วัดในหน่วย bytes per second แบนด์วิทด์ที่ยั่งยืน (Sustained bandwidth) – เป็นค่าเฉลี่ยข้อมูลระหว่างการรับ-ส่งในปริมาณมาก วัดโดย จำนวน bytes/transfer time เป็นอัตราข้อมูล (Data rate) เมื่อสายข้อมูลไหลผ่านจริงๆ แบนด์วิทด์ที่มีประสิทธิภาพ (Effective bandwidth) – ค่าเฉลี่ยของI/O time ทั้งหมด, รวมทั้ง การค้นหา (seek) หรือการหาตำแหน่งที่อยู่ (locate), และ cartridge switching เป็นอัตราข้อมูลของทุกไดรฟ์
Speed (Cont.) Access latency – จำนวนเวลาที่ใช้ในการค้นหาข้อมูลที่ต้องการ Access time สำหรับดิสก์ – การเลื่อนแขนอ่านไปยัง cylinder ที่เลือก และรอ rotational latency; ใช้เวลาน้อย 35 milliseconds Access on tape เป็นระยะเวลาในการหมุนม้วนเทปจนกระทั่งหัวอ่านเทปอยู่บนบล็อกที่ต้องการ ใช้เวลาประมาณ 10-1000 วินาที กล่าวได้ว่า เวลาเฉลี่ยในการเข้าถึงแบบสุ่มบนเทปจะช้ากว่าบนดิสก์ประมาณพันเท่า ต้นทุนที่ต่ำกว่าของอุปกรณ์หน่วยเก็บประเภทเทปและสื่อบางชนิด คือความสามารถในการใช้ชุดไดรฟ์ร่วมกันกับสื่อหลายชุด จึงทำให้ประหยัดลงได้
ความเชื่อถือได้ Reliability fixed disk drive จะมีความเชื่อถือได้สูงกว่า removable disk หรือ tape drive optical cartridge จะมีความเชื่อถือได้สูงกว่า magnetic disk หรือ tape head crash ใน fixed hard disk จะทำลายข้อมูลบริเวณนั้น ในขณะที่ ความขัดข้อง (failure) ของ tape drive หรือ optical disk drive มักไม่ทำความเสียหายของข้อมูลบน cartridge
ค่าใช้จ่าย Cost Main memory มีค่าใช้จ่ายแพงกว่า disk storage มาก cost per megabyte ของ hard disk storage ราคาพอๆ กับ magnetic tape แต่ละชุด (ถ้ารวมไดรฟ์ด้วย) tape drives และ disk drives จัดเป็นหน่วยเก็บที่มีต้นทุนต่อหน่วยถูกที่สุดในหลายปีที่ผ่านมา เหตุที่เทปประหยัดค่าใช้จ่ายก็มาจากการใช้ชุดเทปไดรฟ์เพียงชุดเดียวกับเทปได้หลายกล่อง
Price per Megabyte of DRAM, From 1981 to 2000
Price per Megabyte of Magnetic Hard Disk, From 1981 to 2000
Price per Megabyte of a Tape Drive, From 1984-2000