Disk used to be the least reliable component of the system. They still have relatively high failures and it causes loss of data and significant downtime. It takes hours to recover from a disk crash. Improving the reliability of disk systems is very important and several improvements in disk-use techniques have been proposed.
To improve speed, disk stripping uses a group of disks as one storage unit. Each data block is broken into several sub blocks, with one sub block stored on each disk. The time required to transfer a block into memory improves because all the disks transfer their sub blocks in parallel. If the disks have their rotation synchronized, the performance improves because all the disks become ready to transfer their sub blocks at the same time rather than waiting for the slowest rotational latency. This organization is usually called a redundant array of independent disks (RAID).
The simplest RAID organization, called mirroring or shadowing, just keeps a duplicate copy of each disk. This solution is costly but it is about twice as fast when reading, because half of the read requests can be sent to each disk.
Block Interleaved Parity, another RAID organization uses much less redundancy. A small fraction of disk space is used to hold parity blocks. Each bit position in the parity block would contain the parity for the corresponding bit positions in each of the 8 data blocks. If one disk block becomes bad, all its data bits are essentially erased but can be recomputed from other data blocks plus parity block.
A parity RAID system has the combined speed of multiple disks and controllers. But the performance is an issue during writing, because updating any single data sub block forces the corresponding parity sub block to be recomputed and rewritten.
Tuesday, February 2, 2010
How to improve disk reliability ?
Posted by
Sunflower
at
2/02/2010 03:51:00 PM
0
comments
Labels: Disk Reliability, disk structure, Disk use, disks, Failure, Improvement, RAID, Reliable, Techniques
![]() | Subscribe by Email |
|
Friday, January 29, 2010
Bad Block Recovery - Disk Management
Disks have moving parts and some tolerances, they are prone to failure. Most disks even come from the factory with bad blocks. Depending on the disk and controller in use, these blocks are handled in a variety of ways.
- Simple disks such as disks with IDE controllers, bad blocks are handled manually.
The MS-DOS format command does a logical format, scans the disk to find bad blocks. If format finds a bad block, it writes a special value into the corresponding FAT entry to tell the allocation routines not to use that block.
- More sophisticated disks, such as SCSI disks used in high-end PCs and most workstations, are smarter about bad block recovery. The controller has a list of bad blocks on the disk and this list is initialized during low-level format at factory, and is updated over the life of the disk. Low-level formatting also sets aside spare sectors not visible to operating system. The controller can be told to replace each bad sector logically with one of the spare sectors. This scheme is called sector sparing.
A typical bad sector transaction :
- The operating system tries to read logical block 87.
- The controller calculates the ECC and finds that the sector is bad. It reports this finding to the operating system.
- The next time the system is rebooted, a special command is run to tell the SCSI controller to replace the bad sector with a spare.
- After this, whenever the system requests logical block 87, the request is translated into the replacement sector's address by the controller.
An alternative to sector sparing, some controllers can be instructed to replace a bad block by sector slipping.
The replacement of a bad block generally is not a totally automatic process, because the data in the bad block usually are lost. Thus, whatever file was using that block must be repaired, and that requires manual intervention.
Posted by
Sunflower
at
1/29/2010 03:32:00 PM
0
comments
Labels: Bad blocks, Disk format, Disk Management, disk structure, disks, Format, Memory, Recovery, Recovery Technique, Sector sparing
![]() | Subscribe by Email |
|
Boot Block - Disk Management
A program at some fixed location on a hard disk, floppy disk or other media, which is loaded when the computer is turned on or rebooted and which controls the next phase of loading the actual operating system. The loading and execution of the boot block is usually controlled by firmware in ROM or PROM.
There is an initial program that is run whenever a computer starts running. This initial program initializes all aspects of the system, from CPU registers to device controllers and the contents of the main memory, and then starts the operating system.
Generally, the bootstrap is stored in read-only-memory (ROM) because ROM needs no initialization, and is at a fixed location that the processor can start executing when powered up or reset. The problem is that changing this bootstrap code requires changing ROM hardware chips. For this reason, most systems store a tiny bootstrap loader program in the boot ROM, whose only job is to bring in a full bootstrap program from disk.
The code in the boot ROM instructs the disk controller to read the boot blocks into memory, and then starts executing the code. The full bootstrap program is more sophisticated than the bootstrap loader in the boot ROM, and is able to load the entire operating system from a non-fixed location on disk, and to start the operating system running.
Posted by
Sunflower
at
1/29/2010 03:17:00 PM
0
comments
Labels: Block, Boot Block, Booting, Computer Operating systems, Disk Management, disk structure, disks, Programs
![]() | Subscribe by Email |
|
Wednesday, January 27, 2010
Disk Scheduling Algorithm - SCAN Scheduling
In this algorithm the head always constantly moves from the most inner cylinder to the outer cylinder, then it changes its direction back towards the center. As the head moves, if there is a request for the current disk position it is satisfied. The throughput is better than in FIFO. The SCAN algorithm is more fair that SSTF. This algorithm is named after the behavior of a building elevator, where the elevator continues to travel in its current direction (up or down) until empty, stopping only to let individuals off or to pick up new individuals heading in the same direction.
The arm movement is thus always less than twice the number of total cylinders then, for both versions of the elevator algorithm. The variation has the advantage to have a smaller variance in response time. The algorithm is also relatively simple.
However, the elevator algorithm is not always better than Shortest seek first, which is slightly closer to optimal, but can result in high variance in response time and even in starvation when new requests continually get serviced prior to existing requests.
Anti-starvation techniques can be applied to the shortest seek time first algorithm to guarantee an optimum response time.
Posted by
Sunflower
at
1/27/2010 10:23:00 PM
0
comments
Labels: Algorithms, Disk Scheduling, Disk Scheduling Algorithm, disk structure, disks, Elevator Scheduling, Operating Systems, SCAN Scheduling
![]() | Subscribe by Email |
|
Disk Scheduling Algorithm - SSTF Scheduling
Shortest seek first (or shortest seek time first) is a secondary storage scheduling algorithm to determine the motion of the disk's arm and head in servicing read and write requests. This is a direct improvement upon a first-come first-served (FIFO) algorithm. The drive maintains an incoming buffer of requests, and tied with each request is a cylinder number of the request. Lower cylinder numbers indicate that the cylinder is closest to the spindle, and higher numbers indicate the cylinder is further away.
The shortest seek first algorithm determines which request is closest to the current position of the head, and then services that request next. The shortest seek first algorithm has the direct benefit of simplicity and is clearly advantageous in comparison to the FCFS method, in that overall arm movement is reduced, resulting in lower average response time.
However, since the buffer is always getting new requests, these can skew the service time of requests that may be farthest away from the disk head's current location, if the new requests are all close to the current location; in fact, starvation may result, with the faraway requests never being able to make progress.
SSTF scheduling is essentially a form of shortest-job-first (SJF) scheduling, and like SJF scheduling, it may cause starvation of some requests.
Posted by
Sunflower
at
1/27/2010 10:03:00 PM
0
comments
Labels: Algorithms, Disk Scheduling, Disk Scheduling Algorithm, disk structure, disks, Shortest Seek Time First, SSTF
![]() | Subscribe by Email |
|
Secondary Storage Structure - Disk Structure
Secondary storage structure helps to :
- Describe the physical structure of secondary and tertiary storage devices and the resulting effects on the uses of the devices.
- Explain the performance characteristics of mass-storage devices.
- Discuss operating-system services provided for mass storage, including RAID and HSM.
Disk provide the bulk of secondary storage for modern computer systems. Disk drives are addressed as large 1-dimensional arrays of logical blocks, where the logical block is the smallest unit of transfer. The 1-dimensional array of logical blocks is mapped onto the sectors of the disk sequentially.
- Sector 0 is the first sector of the first track on the outermost cylinder.
- Mapping proceeds in order through that track, then the rest of the tracks in that cylinder, and then through the rest of the cylinders from outermost to innermost.
- The operating system is responsible for using hardware efficiently — for the disk drives, this means having a fast access time and disk bandwidth.
- Access time has two major components.
* Seek time is the time for the disk arm to move the heads to the cylinder containing the desired sector.
* Rotational latency is the additional time waiting for the disk to rotate the desired sector to the disk head.
- Minimize seek time.
- Seek time seek distance.
- Disk bandwidth is the total number of bytes transferred, divided by the total time between the first request for service and the completion of the last transfer.
- Several algorithms exist to schedule the servicing of disk I/O requests.
Posted by
Sunflower
at
1/27/2010 02:21:00 PM
0
comments
Labels: 1-dimensional arrays, disk structure, disks, Mapping, Operating Systems, Secondary structure, Storage
![]() | Subscribe by Email |
|