Penguin
Diff: HowToMultiDiskHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToMultiDiskHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Tuesday, October 26, 2004 10:26:19 am by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:08 am by perry Revert
@@ -1,9003 +1 @@
-  
-  
-  
-Mini_HOWTO: Multi Disk System Tuning -->  
-  
-  
-  
-----  
-  
-!!!HOWTO: Multi Disk System Tuning  
-  
-!!Stein Gjoen, sgjoen@nyx.netv0.33a, 20 May 2002  
-  
-  
-----  
-''  
-  
-  
-This document describes how best to use multiple disks and partitions  
-for a Linux system. Although some of this text is Linux specific the  
-general approach outlined here can be applied to many other multi tasking  
-operating systems .''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-*1.1 Copyright  
-  
-*1.2 Disclaimer  
-  
-*1.3 News  
-  
-*1.4 Credits  
-  
-*1.5 Translations  
-  
-  
-  
-  
-  
-!!2. Structure  
-  
-  
-*2.1 Logical structure  
-  
-*2.2 Document structure  
-  
-*2.3 Reading plan  
-  
-  
-  
-  
-  
-!!3. Drive Technologies  
-  
-  
-*3.1 Drives  
-  
-*3.2 Geometry  
-  
-*3.3 Media  
-  
-*3.4 Interfaces  
-  
-*3.5 Cabling  
-  
-*3.6 Host Adapters  
-  
-*3.7 Multi Channel Systems  
-  
-*3.8 Multi Board Systems  
-  
-*3.9 Speed Comparison  
-  
-*3.10 Benchmarking  
-  
-*3.11 Comparisons  
-  
-*3.12 Future Development  
-  
-*3.13 Recommendations  
-  
-  
-  
-  
-  
-!!4. File System Structure  
-  
-  
-*4.1 File System Features  
-  
-*4.2 Explanation of Terms  
-  
-  
-  
-  
-  
-!!5. File Systems  
-  
-  
-*5.1 General Purpose File Systems  
-  
-*5.2 Microsoft File Systems  
-  
-*5.3 Logging and Journaling File Systems  
-  
-*5.4 Read-only File Systems  
-  
-*5.5 Networking File Systems  
-  
-*5.6 Special File Systems  
-  
-*5.7 File System Recommendations  
-  
-  
-  
-  
-  
-!!6. Technologies  
-  
-  
-*6.1 RAID  
-  
-*6.2 Volume Management  
-  
-*6.3 Linux md Kernel Patch  
-  
-*6.4 Compression  
-  
-*6.5 ACL  
-  
-*6.6 cachefs  
-  
-*6.7 Translucent or Inheriting File Systems  
-  
-*6.8 Physical Track Positioning  
-  
-*6.9 Yoke  
-  
-*6.10 Stacking  
-  
-*6.11 Recommendations  
-  
-  
-  
-  
-  
-!!7. Other Operating Systems  
-  
-  
-*7.1 DOS  
-  
-*7.2 Windows  
-  
-*7.3 OS/2  
-  
-*7.4 NT  
-  
-*7.5 Windows 2000  
-  
-*7.6 Sun OS  
-  
-*7.7 BeOS  
-  
-  
-  
-  
-  
-!!8. Clusters  
-  
-  
-  
-  
-!!9. Mount Points  
-  
-  
-  
-  
-!!10. Considerations and Dimensioning  
-  
-  
-*10.1 Home Systems  
-  
-*10.2 Servers  
-  
-*10.3 Pitfalls  
-  
-  
-  
-  
-  
-!!11. Disk Layout  
-  
-  
-*11.1 Selection for Partitioning  
-  
-*11.2 Mapping Partitions to Drives  
-  
-*11.3 Sorting Partitions on Drives  
-  
-*11.4 Optimizing  
-  
-*11.5 Compromises  
-  
-  
-  
-  
-  
-!!12. Implementation  
-  
-  
-*12.1 Checklist  
-  
-*12.2 Drives and Partitions  
-  
-*12.3 Partitioning  
-  
-*12.4 Repartitioning  
-  
-*12.5 Microsoft Partition Bug  
-  
-*12.6 Multiple Devices (md)  
-  
-*12.7 Formatting  
-  
-*12.8 Mounting  
-  
-*12.9 fstab  
-  
-*12.10 Mount options  
-  
-*12.11 Recommendations  
-  
-  
-  
-  
-  
-!!13. Maintenance  
-  
-  
-*13.1 Backup  
-  
-*13.2 Defragmentation  
-  
-*13.3 Deletions  
-  
-*13.4 Upgrades  
-  
-*13.5 Recovery  
-  
-*13.6 Rescue Disk  
-  
-  
-  
-  
-  
-!!14. Advanced Issues  
-  
-  
-*14.1 Hard Disk Tuning  
-  
-*14.2 File System Tuning  
-  
-*14.3 Spindle Synchronizing  
-  
-  
-  
-  
-  
-!!15. Troubleshooting  
-  
-  
-*15.1 During Installation  
-  
-*15.2 During Booting  
-  
-*15.3 During Running  
-  
-  
-  
-  
-  
-!!16. Further Information  
-  
-  
-*16.1 News groups  
-  
-*16.2 Mailing Lists  
-  
-*16.3 HOWTO  
-  
-*16.4 Mini-HOWTO  
-  
-*16.5 Local Resources  
-  
-*16.6 Web Pages  
-  
-*16.7 Search Engines  
-  
-  
-  
-  
-  
-!!17. Getting Help  
-  
-  
-  
-  
-!!18. Concluding Remarks  
-  
-  
-*18.1 Coming Soon  
-  
-*18.2 Request for Information  
-  
-*18.3 Suggested Project Work  
-  
-  
-  
-  
-  
-!!19. Questions and Answers  
-  
-  
-  
-  
-!!20. Bits and Pieces  
-  
-  
-*20.1 Swap Partition: to Use or Not to Use  
-  
-*20.2 Mount Point and /mnt  
-  
-*20.3 Power and Heating  
-  
-*20.4 Deja  
-  
-*20.5 Crash Recovery  
-  
-  
-  
-  
-  
-!!21. Appendix A: Partitioning Layout Table: Mounting and Linking  
-  
-  
-  
-  
-!!22. Appendix B: Partitioning Layout Table: Numbering and Sizing  
-  
-  
-  
-  
-!!23. Appendix C: Partitioning Layout Table: Partition Placement  
-  
-  
-  
-  
-!!24. Appendix D: Example: Multipurpose Server  
-  
-  
-  
-  
-!!25. Appendix E: Example: Mounting and Linking  
-  
-  
-  
-  
-!!26. Appendix F: Example: Numbering and Sizing  
-  
-  
-  
-  
-!!27. Appendix G: Example: Partition Placement  
-  
-  
-  
-  
-!!28. Appendix H: Example II  
-  
-  
-  
-  
-!!29. Appendix I: Example III: SPARC Solaris  
-  
-  
-  
-  
-!!30. Appendix J: Example IV: Server with 4 Drives  
-  
-  
-  
-  
-!!31. Appendix K: Example V: Dual Drive System  
-  
-  
-  
-  
-!!32. Appendix L: Example VI: Single Drive System  
-  
-  
-  
-  
-!!33. Appendix M: Disk System Documenter  
-----  
-  
-!!1. Introduction  
-  
-  
-  
-  
-For unclear reasons this brand new release is codenamed  
-the __Taylor3__ release.  
-  
-  
-New code names will appear as per industry standard guidelines  
-to emphasize the state-of-the-art-ness of this document.  
-  
-  
-  
-  
-  
-This document was written for two reasons, mainly because I got hold  
-of 3 old SCSI disks to set up my Linux system on and I was pondering  
-how best to utilise the inherent possibilities of parallelizing in a  
-SCSI system. Secondly I hear there is a prize for people who write  
-documents...  
-  
-  
-This is intended to be read in conjunction with the Linux Filesystem  
-Structure Standard (FSSTND). It does not in any way replace it but tries to  
-suggest where physically to place directories detailed in the FSSTND,  
-in terms of drives, partitions, types, RAID, file system (fs),  
-physical sizes and other parameters that should be considered and  
-tuned in a Linux system, ranging from single home systems to large  
-servers on the Internet.  
-  
-  
-  
-  
-  
-The followup to FSSTND is called the Filesystem Hierarchy Standard (FHS)  
-and covers more than Linux alone. FHS versions 2., 2.1 and 2.2 have been  
-released but there are still a few issues to be dealt with. Many recent  
-distributions are now aiming for FHS compliance.  
-  
-  
-It is also a good idea to read the Linux Installation guides thoroughly  
-and if you are using a PC system, which I guess the majority still does,  
-you can find much relevant and useful information in the FAQs for the  
-newsgroup comp.sys.ibm.pc.hardware especially for storage media.  
-  
-  
-This is also a learning experience for myself and I hope I can start  
-the ball rolling with this HOWTO and that it perhaps can evolve  
-into a larger more detailed and hopefully even more correct HOWTO.  
-  
-  
-  
-  
-  
-First of all we need a bit of legalese. Recent development shows it is  
-quite important.  
-  
-  
-  
-  
-!!1.1 Copyright  
-  
-  
-  
-  
-  
-  
-This document is Copyright 1996 Stein Gjoen. Permission is granted to  
-copy, distribute and/or modify this document under the terms of the  
-GNU Free Documentation License, Version 1.1 or any later version  
-published by the Free Software Foundation with no Invariant Sections,  
-no Front-Cover Texts, and no Back-Cover Texts.  
-  
-  
-If you have any questions, please contact <{linux-howto@metalab.unc.edu}>  
-  
-  
-  
-  
-  
-  
-  
-!!1.2 Disclaimer  
-  
-  
-  
-  
-  
-  
-Use the information in this document at your own risk. I disavow any  
-potential liability for the contents of this document. Use of the  
-concepts, examples, and/or other content of this document is entirely  
-at your own risk.  
-  
-  
-All copyrights are owned by their owners, unless specifically noted  
-otherwise. Use of a term in this document should not be regarded as  
-affecting the validity of any trademark or service mark.  
-  
-  
-Naming of particular products or brands should not be seen as endorsements.  
-  
-  
-You are strongly recommended to take a backup of your system before  
-major installation and backups at regular intervals.  
-  
-  
-  
-  
-  
-  
-  
-!!1.3 News  
-  
-  
-  
-  
-  
-  
-  
-This is a major upgrade featuring a new copyright statement that is  
-intended to be Debian compliant and allow for inclusion in their  
-distribution. A number of mistakes are corrected and new features  
-added such as descriptions of recent ATA features and more.  
-  
-  
-  
-  
-  
-  
-  
-  
-On the development front people are concentrating their energy towards  
-completing Linux 2.4 and until that is released there is not going to  
-be much news on disk technology for Linux.  
-  
-  
-  
-  
-  
-Also now the document is available in postscript  
-both for US letter as well as European A4 formats.  
-  
-  
-The latest version number of this document can be gleaned from my  
-plan entry if you  
-finger my Nyx account.  
-  
-  
-Also, the latest version will be available on my web space on Nyx  
-in a number of formats:  
-  
-  
-*  
-HTML.  
-  
-*  
-  
-*  
-plain ASCII text (ca. 6200 lines).  
-  
-*  
-  
-*  
-compressed postscript US letter format (ca. 90 pages).  
-  
-*  
-  
-*  
-compressed postscript European A4 format (ca. 85 pages).  
-  
-*  
-  
-*  
-SGML source (ca. 260 KB).  
-*  
-  
-  
-  
-  
-  
-  
-A European mirror of the  
-Multi Disk HOWTO  
-just went on line.  
-  
-  
-  
-  
-  
-  
-  
-!!1.4 Credits  
-  
-  
-  
-In this version I have the pleasure of acknowledging even more people  
-who have contributed in one way or another:  
-  
-  
-  
-  
-  
-ronnej (at ) ucs.orst.edu  
-cm (at) kukuruz.ping.at  
-armbru (at) pond.sub.org  
-R.P.Blake (at) open.ac.uk  
-neuffer (at) goofy.zdv.Uni-Mainz.de  
-sjmudd (at) redestb.es  
-nat (at) nataa.fr.eu.org  
-sundbyk (at) oslo.geco-prakla.slb.com  
-ggjoeen (at) online.no  
-mike (at) i-Connect.Net  
-roth (at) uiuc.edu  
-phall (at) ilap.com  
-szaka (at) mirror.cc.u-szeged.hu  
-CMckeon (at) swcp.com  
-kris (at) koentopp.de  
-edick (at) idcomm.com  
-pot (at) fly.cnuce.cnr.it  
-earl (at) sbox.tu-graz.ac.at  
-ebacon (at) oanet.com  
-vax (at) linkdead.paranoia.com  
-tschenk (at) theoffice.net  
-pjfarley (at) dorsai.org  
-jean (at) stat.ubc.ca  
-johnf (at) whitsunday.net.au  
-clasen (at) unidui.uni-duisburg.de  
-eeslgw (at) ee.surrey.asc.uk  
-adam (at) onshore.com  
-anikolae (at) wega-fddi2.rz.uni-ulm.de  
-cjaeger (at) dwave.net  
-eperezte (at) c2i.net  
-yesteven (at) ms2.hinet.net  
-cj (at) samurajdata.se  
-tbotond (at) netx.hu  
-russel (at) coker.com.au  
-lars (at) iar.se  
-GALLAGS3 (at) labs.wyeth.com  
-morimoto (at) xantia.citroen.org  
-shulegaa (at) gatekeeper.txl.com  
-roman.legat (at) stud.uni-hannover.de  
-ahamish (at) hicks.alien.usr.com  
-hduff2 (at) worldnet.att.net  
-mbaehr (at) email.archlab.tuwien.ac.at  
-adc (at) postoffice.utas.edu.au  
-pjm (at) bofh.asn.au  
-jochen.berg (at) ac.com  
-jpotts (at) us.ibm.com  
-jarry (at) gmx.net  
-!LeBlanc (at) mcc.ac.uk  
-masy (at) webmasters.gr.jp  
-karlheg (at) hegbloom.net  
-goeran (at) uddeborg.pp.se  
-wgm (at) telus.net  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!1.5 Translations  
-  
-  
-  
-  
-  
-  
-Special thanks go to nakano (at) apm.seikei.ac.jp for doing the  
-Japanese translation,  
-general contributions as well as contributing an example of  
-a computer in an academic setting, which is included at the end of this  
-document.  
-  
-  
-There are now many new translations available and special thanks go  
-to the translators for the job and the input they have given:  
-  
-  
-  
-  
-  
-*  
-German Translation by chewie (at) nuernberg.netsurf.de  
-  
-*  
-  
-*  
-Swedish Translation by jonah (at) swipnet.se  
-  
-*  
-  
-*  
-French Translation by Patrick.Loiseleur (at) lri.fr  
-  
-*  
-  
-*  
-Chinese Translation by yesteven (at ) ms2.hinet.net  
-  
-*  
-  
-*  
-Italian Translation by bigpaul (at) flashnet.it  
-*  
-  
-  
-  
-  
-  
-  
-ICP Vortex is gratefully acknowledges for sending in-depth information  
-on their range of RAID controllers.  
-  
-  
-Also DPT is acknowledged for sending me documentation on their controllers  
-as well as permission to quote from the material. These quotes have been  
-approved before appearing here and will be clearly labelled. No quotes as  
-of yet but that is coming.  
-  
-  
-Not many still, so please read through this document, make a contribution  
-and join the elite. If I have forgotten anyone, please let me know.  
-  
-  
-New in this version is an appendix with a few tables you can fill in  
-for your system in order to simplify the design process.  
-  
-  
-Any comments or suggestions can be mailed to my mail address on Nyx:  
-sgjoen@nyx.net.  
-  
-  
-  
-  
-  
-So let's cut to the chase where swap and /tmp are  
-racing along hard drive...  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!2. Structure  
-  
-  
-As this type of document is supposed to be as much for learning  
-as a technical reference document I have rearranged the structure  
-to this end. For the designer of a system it is more useful to  
-have the information presented in terms of the goals of this exercise  
-than from the point of view of the logical layer structure of the  
-devices themselves. Nevertheless this document would not be complete  
-without such a layer structure the computer field is so full of, so  
-I will include it here as an introduction to how it works.  
-  
-  
-It is a long time since the ''mini'' in mini-HOWTO could be defended  
-as proper but I am convinced that this document is as long as it needs  
-to be in order to make the right design decisions, and not longer.  
-  
-  
-  
-  
-!!2.1 Logical structure  
-  
-  
-  
-  
-  
-This is based on how each layer access each other, traditionally  
-with the application on top and the physical layer on the bottom.  
-It is quite useful to show the interrelationship between each of  
-the layers used in controlling drives.  
-  
-  
-___________________________________________________________  
-|__ File structure ( /usr /tmp etc) __|  
-|__ File system (ext2fs, vfat etc) __|  
-|__ Volume management (AFS) __|  
-|__ RAID, concatenation (md) __|  
-|__ Device driver (SCSI, IDE etc) __|  
-|__ Controller (chip, card) __|  
-|__ Connection (cable, network) __|  
-|__ Drive (magnetic, optical etc) __|  
------------------------------------------------------------  
-  
-  
-  
-  
-In the above diagram both volume management and RAID and concatenation  
-are optional layers. The 3 lower layers are in hardware.  
-All parts are discussed at length later on in this document.  
-  
-  
-  
-  
-!!2.2 Document structure  
-  
-  
-  
-Most users start out with a given set of hardware and some plans on  
-what they wish to achieve and how big the system should be. This is  
-the point of view I will adopt in this document in presenting the  
-material, starting out with hardware, continuing with design constraints  
-before detailing the design strategy that I have found to work well.  
-I have used this both for my own personal computer at home, a multi  
-purpose server at work and found it worked quite well. In addition my  
-Japanese co-worker in this project have applied the same strategy on  
-a server in an academic setting with similar success.  
-  
-  
-Finally at the end I have detailed some configuration tables for use  
-in your own design. If you have any comments regarding this or notes  
-from your own design work I would like to hear from you so this  
-document can be upgraded.  
-  
-  
-  
-  
-!!2.3 Reading plan  
-  
-  
-  
-Although not the biggest HOWTO it is nevertheless rather big already  
-and I have been requested to make a reading plan to make it possible  
-to cut down on the volume  
-  
-  
-  
-  
-; __Expert__:  
-  
-(aka the elite). If you are familiar with Linux as well  
-as disk drive technologies you will find most of what you need in the  
-appendices. Additionally you are recommended to read the FAQ and the  
-Bits'n'pieces  
-chapter.  
-  
-  
-  
-; __Experienced__:  
-  
-(aka Competent). If you are familiar with computers  
-in general you can go straight to the chapters on  
-technologies  
-and continue from there on.  
-  
-  
-  
-; __Newbie__:  
-  
-(mostly harmless). You just have to read the whole thing.  
-Sorry. In addition you are also recommended to read all the other disk  
-related HOWTOs.  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!3. Drive Technologies  
-  
-  
-  
-  
-A far more complete discussion on drive technologies for IBM PCs  
-can be found at the home page of  
-The Enhanced IDE/Fast-ATA FAQ  
-which is also regularly posted on Usenet News.  
-There is also a site dedicated to  
-ATA and ATAPI Information and Software.  
-  
-  
-Here I will just present what is needed to get an understanding  
-of the technology and get you started on your setup.  
-  
-  
-  
-  
-!!3.1 Drives  
-  
-  
-  
-  
-  
-This is the physical device where your data lives and although the  
-operating system makes the various types seem rather similar they  
-can in actual fact be very different. An understanding of how it  
-works can be very useful in your design work. Floppy drives fall  
-outside the scope of this document, though should there be a big  
-demand I could perhaps be persuaded to add a little here.  
-  
-  
-  
-  
-!!3.2 Geometry  
-  
-  
-  
-  
-  
-Physically disk drives consists of one or more platters containing  
-data that is read in and out using sensors mounted on movable heads  
-that are fixed with respects to themselves. Data transfers therefore  
-happens across all surfaces simultaneously which defines a cylinder  
-of tracks. The drive is also divided into sectors containing a  
-number of data fields.  
-  
-  
-Drives are therefore often specified in terms of its geometry: the  
-number of Cylinders, Heads and Sectors (CHS).  
-  
-  
-For various reasons there is now a number of translations between  
-  
-  
-*the physical CHS of the drive itself  
-*  
-  
-*the logical CHS the drive reports to the BIOS or OS  
-*  
-  
-*the logical CHS used by the OS  
-*  
-  
-  
-  
-Basically it is a mess and a source of much confusion. For more  
-information you are strongly recommended to read the  
-''Large Disk mini-HOWTO''  
-  
-  
-  
-  
-!!3.3 Media  
-  
-  
-  
-  
-  
-The media technology determines important parameters such as  
-read/write rates, seek times, storage size as well as if it is  
-read/write or read only.  
-  
-  
-  
-  
-! Magnetic Drives  
-  
-  
-  
-  
-This is the typical read-write mass storage medium, and as  
-everything else in the computer world, comes in many flavours  
-with different properties. Usually this is the fastest technology  
-and offers read/write capability. The platter rotates with a  
-constant angular velocity (CAV) with a variable physical sector  
-density for more efficient magnetic media area utilisation.  
-In other words, the number of bits per unit length is kept  
-roughly constant by increasing the number of logical sectors  
-for the outer tracks.  
-  
-  
-Typical values for rotational speeds are 4500 and 5400 RPM, though  
-7200 is also used. Very recently also 10000 RPM has entered  
-the mass market.  
-Seek times are around 10 ms, transfer rates quite variable from  
-one type to another but typically 4-40 MB/s.  
-With the extreme high performance drives you should remember that  
-performance costs more electric power which is dissipated as heat,  
-see the point on  
-Power and Heating.  
-  
-  
-  
-  
-  
-Note that there are several kinds of transfers going on here, and  
-that these are quoted in different units. First of all there is  
-the platter-to-drive cache transfer, usually quoted in  
-Mbits/s. Typical values here is about 50-250 Mbits/s. The second  
-stage is from the built in drive cache to the adapter, and this  
-is typically quoted in MB/s, and typical quoted values here is  
-3-40 MB/s. Note, however, that this assumed data is already in  
-the cache and hence for maximum readout speed from the drive the  
-effective transfer rate will decrease dramatically.  
-  
-  
-  
-  
-  
-  
-  
-!Optical Drives  
-  
-  
-  
-  
-Optical read/write drives exist but are slow and not so common. They  
-were used in the NeXT machine but the low speed was a source for much  
-of the complaints. The low speed is mainly due to the thermal nature  
-of the phase change that represents the data storage. Even when using  
-relatively powerful lasers to induce the phase changes the effects are  
-still slower than the magnetic effect used in magnetic drives.  
-  
-  
-Today many people use CD-ROM drives which, as the  
-name suggests, is read-only. Storage is about 650 MB, transfer speeds  
-are variable, depending on the drive but can exceed 1.5 MB/s. Data is  
-stored on a spiraling single track so it is not useful to talk about  
-geometry for this. Data density is constant so the drive uses constant  
-linear velocity (CLV). Seek is also slower, about 100 ms, partially due  
-to the spiraling track. Recent, high speed drives, use a mix of  
-CLV and CAV in order to maximize performance. This also reduces access  
-time caused by the need to reach correct rotational speed for readout.  
-  
-  
-A new type (DVD) is on the horizon, offering up to about 18 GB on a  
-single disk.  
-  
-  
-  
-  
-!Solid State Drives  
-  
-  
-  
-  
-This is a relatively recent addition to the available technology and  
-has been made popular especially in portable computers as well as in  
-embedded systems. Containing no movable parts they are very fast  
-both in terms of access and transfer rates. The most popular type is  
-flash RAM, but also other types of RAM is used. A few years ago many  
-had great hopes for magnetic bubble memories but it turned out to be  
-relatively expensive and is not that common.  
-  
-  
-In general the use of RAM disks are regarded as a bad idea as it is  
-normally more sensible to add more RAM to the motherboard and let the  
-operating system divide the memory pool into buffers, cache, program  
-and data areas. Only in very special cases, such as real time systems  
-with short time margins, can RAM disks be a sensible solution.  
-  
-  
-Flash RAM is today available in several 10's of megabytes  
-in storage and one might be tempted to use it for fast, temporary  
-storage in a computer. There is however a huge snag with this: flash  
-RAM has a finite life time in terms of the number of times you can  
-rewrite data, so putting  
-swap, /tmp or /var/tmp on such  
-a device will certainly shorten its lifetime dramatically.  
-Instead, using flash RAM for directories that are read often but  
-rarely written to, will be a big performance win.  
-  
-  
-In order to get the optimum life time out of flash RAM you will  
-need to use special drivers that will use the RAM evenly and  
-minimize the number of block erases.  
-  
-  
-This example illustrates the advantages of splitting up your directory  
-structure over several devices.  
-  
-  
-Solid state drives have no real cylinder/head/sector addressing but for  
-compatibility reasons this is simulated by the driver to give a uniform  
-interface to the operating system.  
-  
-  
-  
-  
-!!3.4 Interfaces  
-  
-  
-  
-  
-  
-There is a plethora of interfaces to chose from widely ranging in  
-price and performance. Most motherboards today include IDE interface  
-which are part of modern chipsets.  
-  
-  
-Many motherboards also include a SCSI interface chip made by Symbios  
-(formerly NCR) and that is connected directly to the PCI bus. Check  
-what you have and what BIOS support you have with it.  
-  
-  
-  
-  
-!MFM and RLL  
-  
-  
-  
-  
-  
-Once upon a time this was the established technology, a time when  
-20 MB was awesome, which compared to todays sizes makes you think  
-that dinosaurs roamed the Earth with these drives. Like the dinosaurs  
-these are outdated and are slow and unreliable compared to what we  
-have today. Linux does support this but you are well advised to  
-think twice about what you would put on this. One might argue that  
-an emergency partition with a suitable vintage of DOS might be  
-fitting.  
-  
-  
-  
-  
-!ESDI  
-  
-  
-  
-  
-Actually, ESDI was an adaptation of the very widely used SMD interface used on  
-"big" computers to the cable set used with the ST506 interface, which was more  
-convenient to package than the 60-pin + 26-pin connector pair used with SMD.  
-The ST506 was a "dumb" interface which relied entirely on the controller and  
-host computer to do everything from computing head/cylinder/sector locations  
-and keeping track of the head location, etc. ST506 required the controller to  
-extract clock from the recovered data, and control the physical location of  
-detailed track features on the medium, bit by bit. It had about a 10-year life  
-if you include the use of MFM, RLL, and ERLL/ARLL modulation schemes. ESDI,  
-on the other hand, had intelligence, often using three or four separate  
-microprocessors on a single drive, and high-level commands to format a track,  
-transfer data, perform seeks, and so on. Clock recovery from the data stream  
-was accomplished at the drive, which drove the clock line and presented its  
-data in NRZ, though error correction was still the task of the controller.  
-ESDI allowed the use of variable bit density recording, or, for that matter,  
-any other modulation technique, since it was locally generated and resolved at  
-the drive. Though many of the techniques used in ESDI were later incorporated  
-in IDE, it was the increased popularity of SCSI which led to the demise of ESDI  
-in computers. ESDI had a life of about 10 years, though mostly in servers and  
-otherwise "big" systems rather than PC's.  
-  
-  
-  
-  
-  
-  
-  
-!IDE and ATA  
-  
-  
-  
-  
-  
-Progress made the drive electronics migrate from the ISA slot  
-card over to the drive itself and Integrated Drive Electronics  
-was borne. It was simple, cheap and reasonably fast so the BIOS  
-designers provided the kind of snag that the computer industry is  
-so full of. A combination of an IDE limitation of 16 heads  
-together with the BIOS limitation of 1024 cylinders gave us the  
-infamous 504 MB limit. Following the computer industry traditions  
-again, the snag was patched with a kludge and we got all sorts of  
-translation schemes and BIOS bodges. This means that you need to  
-read the installation documentation very carefully and check up  
-on what BIOS you have and what date it has as the BIOS has to  
-tell Linux what size drive you have. Fortunately with Linux you  
-can also tell the kernel directly what size drive you have with  
-the drive parameters, check the documentation for LILO and Loadlin,  
-thoroughly. Note also that IDE is equivalent to ATA, AT Attachment.  
-IDE uses CPU-intensive Programmed Input/Output (PIO) to transfer  
-data to and from the drives and has no capability for the more  
-efficient Direct Memory Access (DMA) technology. Highest transfer  
-rate is 8.3 MB/s.  
-  
-  
-  
-  
-!EIDE, Fast-ATA and ATA-2  
-  
-  
-  
-  
-  
-  
-These 3 terms are roughly equivalent, fast-ATA is ATA-2 but EIDE  
-additionally includes ATAPI. ATA-2 is what most use these days  
-which is faster and with DMA. Highest transfer rate is increased  
-to 16.6 MB/s.  
-  
-  
-  
-  
-  
-  
-  
-!Ultra-ATA  
-  
-  
-  
-  
-A new, faster DMA mode that is approximately twice the speed of EIDE PIO-Mode 4  
-(33 MB/s). Disks with and without Ultra-ATA can be mixed on the same cable  
-without speed penalty for the faster adapters. The Ultra-ATA interface is  
-electrically identical with the normal Fast-ATA interface, including the  
-maximum cable length.  
-  
-  
-  
-  
-  
-The ATA/66 was superceeded by ATA/100 and very recently we have  
-now gotten ATA/133. While the interface speed has iproved dramatically  
-the disks are often limited by platter-to-cache limites which today  
-stands at about 40 MB/s.  
-  
-  
-For more information read up on these overviews and whitepapers from Maxtor:  
-Fast Drives Technology on the ATA/133 interface  
-and  
-Big Drives Technology on breaking the 137 GB limit.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Serial-ATA  
-  
-  
-  
-  
-A new, standard has been agreed upon, the Serial-ATA  
-interface, backed by the  
-The Serial ATA  
-group who made the announcement in August 2001.  
-  
-  
-Advantages are numerous: simple, thin connectors rather than old  
-cumbersome cable mats that also obstructued air flow, higher speeds  
-(about 150 MB/s) and backward compatibility.  
-  
-  
-  
-  
-  
-  
-  
-!ATAPI  
-  
-  
-  
-  
-The ATA Packet Interface was designed to support CD-ROM drives  
-using the IDE port and like IDE it is cheap and simple.  
-  
-  
-  
-  
-!SCSI  
-  
-  
-  
-  
-The Small Computer System Interface is a multi purpose interface  
-that can be used to connect to everything from drives, disk arrays,  
-printers, scanners and more. The name is a bit of a misnomer as it  
-has traditionally been used by the higher end of the market as well  
-as in work stations since it is well suited for multi tasking  
-environments.  
-  
-  
-The standard interface is 8 bits wide and can address 8 devices.  
-There is a wide version with 16 bit that is twice as fast on the  
-same clock and can address 16 devices. The host adapter always  
-counts as a device and is usually number 7.  
-It is also possible to have 32 bit wide busses but this usually  
-requires a double set of cables to carry all the lines.  
-  
-  
-The old standard was 5 MB/s and the newer fast-SCSI increased this  
-to 10 MB/s. Recently ultra-SCSI, also known as Fast-20, arrived  
-with 20 MB/s transfer rates for an 8 bit wide bus.  
-New low voltage differential (LVD) signalling allows  
-these high speeds as well as much longer cabling than before.  
-  
-  
-Even more recently an even faster standard has been introduced:  
-SCSI 160 (originally named SCSI 160/m) which is capable of a monstrous 160 MB/s  
-over a 16 bit wide bus. Support is scarce yet but for a few  
-10000 RPM drives that can transfer 40 MB/s sustained.  
-Putting 6 such drives on a RAID will keep such a bus saturated  
-and also saturate most PCI busses. Obviously this is only for  
-the very highest end servers per today. More information on  
-this standard is available at  
-The Ultra 160 SCSI home page  
-  
-Adaptec just announced a Linux driver for their SCSI 160 host adapter.  
-More information will come when more information becomes available.  
-  
-  
-Now also SCSI/320 is available.  
-  
-  
-The higher performance comes at a cost that is usually higher than for  
-(E)IDE. The importance of correct termination and good quality cables  
-cannot be overemphasized. SCSI drives also often tend to be of a higher  
-quality than IDE drives. Also adding SCSI devices tend to be easier  
-than adding more IDE drives: Often it is only a matter of plugging  
-or unplugging the device; some people do this without powering down  
-the system. This feature is most convenient when you have multiple  
-systems and you can just take the devices from one system to the  
-other should one of them fail for some reason.  
-  
-  
-There is a number of useful documents you should read if you use  
-SCSI, the SCSI HOWTO as well as the SCSI FAQ posted on Usenet News.  
-  
-  
-SCSI also has the advantage you can connect it easily to tape drives  
-for backing up your data, as well as some printers and scanners. It  
-is even possible to use it as a very fast network between computers  
-while simultaneously share SCSI devices on the same bus. Work is under  
-way but due to problems with ensuring cache coherency between the  
-different computers connected, this is a non trivial task.  
-  
-  
-SCSI numbers are also used for arbitration. If several drives request  
-service, the drive with the lowest number is given priority.  
-  
-  
-Note that newer SCSI cards will simultaneously support an array  
-of different types of SCSI devices all at individually optimized  
-speeds.  
-  
-  
-  
-  
-  
-  
-  
-!!3.5 Cabling  
-  
-  
-  
-  
-  
-  
-  
-I do not intend to make too many comments on hardware but I feel I  
-should make a little note on cabling. This might seem like a  
-remarkably low technological piece of equipment, yet sadly it is the  
-source of many frustrating problems. At todays high speeds one should  
-think of the cable more of a an RF device with its inherent demands on  
-impedance matching. If you do not take your precautions you will get a  
-much reduced reliability or total failure. Some SCSI host adapters are  
-more sensitive to this than others.  
-  
-  
-Shielded cables are of course better than unshielded but the price is  
-much higher. With a little care you can get good performance from a  
-cheap unshielded cable.  
-  
-  
-  
-  
-  
-*For Fast-ATA and Ultra-ATA, the maximum cable length is specified  
-as 45cm (18"). The data lines of both IDE channels are connected on many  
-boards, though, so they count as __one__ cable. In any case EIDE cables  
-should be as short as possible. If there are mysterious crashes or  
-spontaneous changes of data, it is well worth investigating your cabling.  
-Try a lower PIO mode or disconnect the second channel and see if the problem  
-still occurs.  
-  
-*  
-  
-*For Cable Select (ATA drives) you set the drive jumpers  
-to cable select and use the cable to determine master and slave. This  
-is not much used.  
-  
-*  
-  
-*Do not have a slave on an ATA controller (primary or secondary)  
-without a master on the same controller, behaviour in these cases is  
-undetermined.  
-  
-*  
-  
-* Use as short cable as possible, but do not forget the  
-30 cm minimum separation for ultra SCSI  
-and 60 cm separation for differential SCSI.  
-  
-*  
-  
-* Avoid long stubs between the cable and the drive, connect  
-the plug on the cable directly to the drive without an extension.  
-  
-*  
-  
-* SCSI Cabling limitations:  
-  
-  
-Bus Speed (MHz) | Max Length (m)  
---------------------------------------------------  
-5 | 6  
-10 (fast) | 3  
-20 (fast-20 / ultra) | 3 (max 4 devices), 1.5 (max 8 devices)  
-xx (differential) | 25 (max 16 devices  
---------------------------------------------------  
-  
-  
-  
-*  
-  
-* Use correct termination for SCSI devices and at the correct  
-positions: both ends of the SCSI chain. Remember the host adapter  
-itself may have on board termination.  
-  
-*  
-  
-* Do not mix shielded or unshielded cabling, do not wrap  
-cables around metal, try to avoid proximity to metal parts along  
-parts of the cabling. Any such discontinuities can cause impedance  
-mismatching which in turn can cause reflection of signals which  
-increases noise on the cable.  
-This problems gets even more severe in the case of multi channel  
-controllers.  
-Recently someone suggested wrapping bubble plastic around the cables  
-in order to avoid too close proximity to metal, a real problem inside  
-crowded cabinets.  
-*  
-  
-  
-  
-More information on SCSI cabling and termination can be found at  
-various  
-web pages around the net.  
-  
-  
-  
-  
-  
-  
-  
-!!3.6 Host Adapters  
-  
-  
-  
-  
-  
-  
-  
-  
-This is the other end of the interface from the drive, the part  
-that is connected to a computer bus. The speed of the computer  
-bus and that of the drives should be roughly similar, otherwise  
-you have a bottleneck in your system. Connecting a RAID  
-disk-farm to a ISA card is pointless. These days most computers  
-come with 32 bit PCI bus capable of 132 MB/s transfers which  
-should not represent a bottleneck for most people in the near  
-future.  
-  
-  
-As the drive electronic migrated to the drives the remaining part  
-that became the (E)IDE interface is so small it can easily fit into  
-the PCI chip set. The SCSI host adapter is more complex and often  
-includes a small CPU of its own and is therefore more expensive and  
-not integrated into the PCI chip sets available today. Technological  
-evolution might change this.  
-  
-  
-Some host adapters come with separate caching and intelligence but as  
-this is basically second guessing the operating system the gains are  
-heavily dependent on which operating system is used. Some of the more  
-primitive ones, that shall remain nameless, experience great gains.  
-Linux, on the other hand, have so much smarts of its own that the  
-gains are much smaller.  
-  
-  
-Mike Neuffer, who did the drivers for the DPT controllers, states that  
-the DPT controllers are intelligent enough that given enough cache  
-memory it will give you a big push in performance and suggests that  
-people who have experienced little gains with smart controllers just  
-have not used a sufficiently intelligent caching controller.  
-  
-  
-  
-  
-!!3.7 Multi Channel Systems  
-  
-  
-  
-  
-  
-In order to increase throughput it is necessary to identify the most  
-significant bottlenecks and then eliminate them. In some systems, in  
-particular where there are a great number of drives connected, it is  
-advantageous to use several controllers working in parallel, both for  
-SCSI host adapters as well as IDE controllers which usually have 2  
-channels built in. Linux supports this.  
-  
-  
-Some RAID controllers feature 2 or 3 channels and it pays to spread  
-the disk load across all channels. In other words, if you have two  
-SCSI drives you want to RAID and a two channel controller, you should  
-put each drive on separate channels.  
-  
-  
-  
-  
-!!3.8 Multi Board Systems  
-  
-  
-  
-  
-  
-In addition to having both a SCSI and an IDE in the same machine  
-it is also possible to have more than one SCSI controller. Check  
-the SCSI-HOWTO on what controllers you can combine. Also you will  
-most likely have to tell the kernel it should probe for more than  
-just a single SCSI or a single IDE controller. This is done using  
-kernel parameters when booting, for instance using LILO.  
-Check the HOWTOs for SCSI and LILO for how to do this.  
-  
-  
-Multi board systems can offer significant speed gains if you  
-configure your disks right, especially for RAID0. Make sure you  
-interleave the controllers as well as the drives, so that you  
-add drives to the md RAID device in the right order.  
-If controller 1 is connected to drives sda and sdc  
-while controller 2 is connected to drives sdb and sdd  
-you will gain more paralellicity by adding in the order of  
-sda - sdc - sdb - sdd rather than sda - sdb - sdc - sdd  
-because a read or write over more than one cluster will be more  
-likely to span two controllers.  
-  
-  
-  
-  
-  
-The same methods can also be applied to IDE. Most motherboards  
-come with typically 4 IDE ports:  
-  
-  
-* hda primary master  
-*  
-  
-* hdb primary slave  
-*  
-  
-* hdc secondary master  
-*  
-  
-* hdd secondary slave  
-*  
-  
-where the two primaries share one flat cable and the secondaries  
-share another cable. Modern chipsets keep these independent.  
-Therefore it is best to RAID in the order hda - hdc - hdb - hdd  
-as this will most likely parallelise both channels.  
-  
-  
-  
-  
-!!3.9 Speed Comparison  
-  
-  
-  
-  
-  
-The following tables are given just to indicate what speeds are  
-possible but remember that these are the theoretical maximum  
-speeds. All transfer rates are in MB per second  
-and bus widths are measured in bits.  
-  
-  
-  
-  
-  
-  
-  
-!Controllers  
-  
-  
-  
-  
-  
-  
-IDE : 8.3 - 16.7  
-Ultra-ATA : 33 - 66  
-SCSI :  
-Bus width (bits)  
-Bus Speed (MHz) | 8 16 32  
---------------------------------------------------  
-5 | 5 10 20  
-10 (fast) | 10 20 40  
-20 (fast-20 / ultra) | 20 40 80  
-40 (fast-40 / ultra-2) | 40 80 --  
---------------------------------------------------  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Bus Types  
-  
-  
-  
-  
-  
-  
-ISA : 8-12  
-EISA : 33  
-VESA : 40 (Sometimes tuned to 50)  
-PCI  
-Bus width (bits)  
-Bus Speed (MHz) | 32 64  
---------------------------------------------------  
-33 | 132 264  
-66 | 264 528  
---------------------------------------------------  
-  
-  
-  
-  
-  
-  
-!!3.10 Benchmarking  
-  
-  
-  
-  
-  
-  
-  
-  
-This is a very, very difficult topic and I will only make a few  
-cautious comments about this minefield. First of all, it is more  
-difficult to make comparable benchmarks that have any actual meaning.  
-This, however, does not stop people from trying...  
-  
-  
-Instead one can use benchmarking to diagnose your own system, to  
-check it is going as fast as it should, that is, not slowing down.  
-Also you would expect a significant increase when switching from  
-a simple file system to RAID, so a lack of performance gain will  
-tell you something is wrong.  
-  
-  
-When you try to benchmark you should not hack up your own, instead  
-look up iozone and bonnie and read the documentation very  
-carefully. In particular make sure your buffer size is bigger than  
-your RAM size, otherwise you test your RAM rather than your disks  
-which will give you unrealistically high performance.  
-  
-  
-A very simple benchmark can be obtained using hdparm -tT which  
-can be used both on IDE and SCSI drives.  
-  
-  
-For more information on benchmarking and software for a number of  
-platforms, check out  
-ACNC  
-benchmark page  
-as well as  
-this one  
-and also  
-The Benchmarking-HOWTO.  
-  
-  
-There are also official home pages for  
-bonnie,  
-bonnie++  
-and  
-iozone.  
-  
-  
-Trivia: Bonnie is intended to locate bottlenecks, the name is a tribute  
-to Bonnie Raitt, "who knows how to use one" as the author puts it.  
-  
-  
-  
-  
-!!3.11 Comparisons  
-  
-  
-  
-  
-  
-SCSI offers more performance than EIDE but at a price. Termination  
-is more complex but expansion not too difficult. Having more than  
-4 (or in some cases 2) IDE drives can be complicated, with wide SCSI  
-you can have up to 15 per adapter. Some SCSI host adapters have  
-several channels thereby multiplying the number of possible drives  
-even further.  
-  
-  
-For SCSI you have to dedicate one IRQ per host adapter which can  
-control up to 15 drives. With EIDE you need one IRQ for each  
-channel (which can connect up to 2 disks, master and slave)  
-which can cause conflict.  
-  
-  
-RLL and MFM is in general too old, slow and unreliable to be of much  
-use.  
-  
-  
-  
-  
-  
-  
-  
-!!3.12 Future Development  
-  
-  
-  
-  
-  
-  
-  
-SCSI-3 is under way and will hopefully be released soon. Faster  
-devices are already being announced, recently an 80 MB/s  
-and then a 160 MB/s monster specification has been proposed and  
-also very recently became commercially available.  
-These are based around the Ultra-2 standard (which used a 40 MHz clock)  
-combined with a 16 bit cable.  
-  
-  
-Some manufacturers already announce SCSI-3  
-devices but this is currently rather premature as the standard is not  
-yet firm. As the transfer speeds increase the saturation point of the  
-PCI bus is getting closer. Currently the 64 bit version has a limit of  
-264 MB/s. The PCI transfer rate will in the future be increased from the  
-current 33 MHz to 66 MHz, thereby increasing the limit to 528 MB/s.  
-  
-  
-The ATA development is continuing and is increasing the performance  
-with the new ATA/100 standard. Since most ATA drives are slower in  
-sustained transfer from platter than this the performance increase  
-will for most people be small.  
-  
-  
-More interesting is the Serial ATA development, where the flat cable  
-will be replaced with a high speed serial link. This makes cabling  
-far simpler than today and also it solves the problem of cabling  
-obstructing airflow over the drives.  
-  
-  
-Another trend is for larger and larger drives. I hear it is possible  
-to get 75 GB on a single drive though this is rather expensive.  
-Currently the optimum storage for your money is about 30 GB but also  
-this is continuously increasing. The introduction of DVD will in the  
-near future have a big impact, with nearly 20 GB on a single disk you  
-can have a complete copy of even major FTP sites from around the  
-world. The only thing we can be reasonably sure about the future  
-is that even if it won't get any better, it will definitely be bigger.  
-  
-  
-Addendum: soon after I first wrote this I read that the maximum useful  
-speed for a CD-ROM was 20x as mechanical stability would be too great  
-a problem at these speeds. About one month after that again the first  
-commercial 24x CD-ROMs were available... Currently you can get 40x and  
-no doubt higher speeds are in the pipeline.  
-  
-  
-A project to encapsulate SCSI over TCP/IP, called  
-iSCSI  
-has started, and one  
-Linux iSCSI implementation  
-has appeared.  
-  
-  
-  
-  
-  
-  
-  
-!! 3.13 Recommendations  
-  
-  
-  
-  
-  
-My personal view is that EIDE  
-or Ultra ATA is the best way to start out on your  
-system, especially if you intend to use DOS as well on your machine.  
-If you plan to expand your system over many years or use it as a  
-server I would strongly recommend you get SCSI drives. Currently  
-wide SCSI is a little more expensive. You are generally more likely  
-to get more for your money with standard width SCSI. There is also  
-differential versions of the SCSI bus which increases maximum length  
-of the cable. The price increase is even more substantial and cannot  
-therefore be recommended for normal users.  
-  
-  
-In addition to disk drives you can also connect some types of  
-scanners and printers and even networks to a SCSI bus.  
-  
-  
-Also keep in mind that as you expand your system you will draw ever  
-more power, so make sure your power supply is rated for the job and  
-that you have sufficient cooling. Many SCSI drives offer the option  
-of sequential spin-up which is a good idea for large systems.  
-See also  
-Power and Heating.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!4. File System Structure  
-  
-  
-  
-  
-Linux has been multi tasking from the very beginning where a number  
-of programs interact and run continuously. It is therefore important  
-to keep a file structure that everyone can agree on so that the system  
-finds data where it expects to. Historically there has been so many  
-different standards that it was confusing and compatibility was  
-maintained using symbolic links which confused the issue even further  
-and the structure ended looking like a maze.  
-  
-  
-  
-  
-In the case of Linux a standard was fortunately agreed on early on  
-called the ''File Systems Standard'' (FSSTND) which today is used  
-by all main Linux distributions.  
-  
-  
-  
-  
-Later it was decided to make a successor that should also support  
-operating systems other than just Linux, called  
-the ''Filesystem Hierarchy Standard'' (FHS) at version 2.2 currently.  
-This standard is under continuous development and will  
-soon be adopted by Linux distributions.  
-  
-  
-I recommend not trying to roll your own structure as a lot of  
-thought has gone into the standards and many software packages  
-comply with the standards. Instead you can read more about this  
-at the  
-FHS home page.  
-  
-  
-This HOWTO endeavours to comply with FSSTND  
-and will follow FHS when distributions become available.  
-  
-  
-  
-  
-  
-  
-  
-!!4.1 File System Features  
-  
-  
-  
-  
-  
-The various parts of FSSTND have different requirements regarding  
-speed, reliability and size, for instance losing root is a pain  
-but can easily be recovered. Losing /var/spool/mail is a  
-rather different issue. Here is a quick summary of some essential  
-parts and their properties and requirements. Note that this is  
-just a guide, there can be binaries in etc and  
-lib directories, libraries in bin directories  
-and so on.  
-  
-  
-  
-  
-  
-  
-  
-!Swap  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Maximum! Though if you rely too much on swap you  
-should consider buying some more RAM. Note, however, that on  
-many old Pentium PC motherboards the cache will not work on RAM above 128 MB.  
-  
-  
-  
-; __Size__:  
-  
-Similar as for RAM. Quick and dirty algorithm:  
-just as for tea: 16 MB for the machine and 2 MB for each user. Smallest  
-kernel run in 1 MB but is tight, use 4 MB for general work and light  
-applications, 8 MB for X11 or GCC or 16 MB to be comfortable.  
-(The author is known to brew a rather powerful cuppa tea...)  
-  
-  
-Some suggest that swap space should be 1-2 times the size of the  
-RAM, pointing out that the locality of the programs determines how  
-effective your added swap space is. Note that using the same  
-algorithm as for 4BSD is slightly incorrect as Linux does not  
-allocate space for pages in core.  
-  
-  
-A more thorough approach is to consider swap space plus RAM as  
-your total working set, so if you know how much space you will  
-need at most, you subtract the physical RAM you have and that  
-is the swap space you will need.  
-  
-  
-There is also another reason to be generous when dimensioning  
-your swap space: memory leaks. Ill behaving programs that do not free  
-the memory they allocate for themselves are said to have a memory leak.  
-This allocation remains even after the offending program has stopped  
-so this is a source of memory consumption.  
-Only after the program dies is the memory returned.  
-Once all physical RAM and  
-swap space are exhausted the only solution is to  
-kill the offending processes if possible, or failing that,  
-reboot and start over.  
-Thankfully such programs are not too common but should you come across  
-one you will find that extra swap space will buy you extra time between  
-reboots.  
-  
-  
-Also remember to take into account the type of programs you use.  
-Some programs that have large working sets, such as  
-image processing software  
-have huge data structures loaded in RAM rather than  
-working explicitly on disk files. Data and computing intensive  
-programs like this will cause excessive swapping if you have less  
-RAM than the requirements.  
-  
-  
-Other types of programs can lock their pages into RAM. This can be  
-for security reasons, preventing copies of data reaching a swap device  
-or for performance reasons such as in a real time module. Either way,  
-locking pages reduces the remaining amount of swappable memory and  
-can cause the system to swap earlier then otherwise expected.  
-  
-  
-In man 8 mkswap it is explained that each swap partition can  
-be a maximum of just under 128 MB in size for 32-bit machines  
-and just under 256 MB for 64-bit machines.  
-  
-  
-This however changed with kernel 2.2.0 after which the limit is 2 GB.  
-The man page has been updated to reflect this change.  
-  
-  
-  
-  
-  
-  
-; __Reliability__:  
-  
-Medium. When it fails you know it pretty quickly and  
-failure will cost you some lost work. You save often, don't you?  
-  
-  
-  
-; __Note 1__:  
-  
-Linux offers the possibility of interleaved swapping  
-across multiple devices, a feature that can gain you much. Check out  
-"man 8 swapon" for more details. However, software raiding  
-swap across multiple devices adds more overheads than you gain.  
-  
-  
-Thus the /etc/fstab file might look like this:  
-  
-  
-/dev/sda1 swap swap pri=1 0  
-/dev/sdc1 swap swap pri=1 0  
-  
-  
-Remember that the fstab file is ''very'' sensitive to the formatting  
-used, read the man page carefully and do ''not'' just cut and paste  
-the lines above.  
-  
-  
-  
-; __Note 2__:  
-  
-Some people use a RAM disk for swapping or some other  
-file systems. However, unless you have some very unusual requirements  
-or setups you are unlikely to gain much from this as this cuts into  
-the memory available for caching and buffering.  
-  
-  
-  
-; __Note 2b__:  
-  
-There is once exception: on a number of badly designed  
-motherboards the on board cache memory is not able to cache all the  
-RAM that can be addressed. Many older motherboards could accept 128 MB  
-RAM but only cache the lower 64 MB. In such cases it would improve the  
-performance if you used the upper (uncached) 64 MB RAM for RAMdisk  
-based swap or other temporary storage.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Temporary Storage (/tmp and /var/tmp)  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Very high. On a separate disk/partition this will  
-reduce fragmentation generally, though ext2fs handles fragmentation  
-rather well.  
-  
-  
-  
-; __Size__:  
-  
-Hard to tell, small systems are easy to run with just  
-a few MB but these are notorious hiding places for stashing files  
-away from prying eyes and quota enforcement and can grow without  
-control on larger machines. Suggested: small home machine: 8 MB,  
-large home machine: 32 MB, small server: 128 MB, and large  
-machines up to 500 MB (The machine used by the author at work has 1100  
-users and a 300 MB /tmp directory). Keep an eye on these directories,  
-not only for hidden files but also for old files. Also be prepared that  
-these partitions might be the first reason you might have to resize  
-your partitions.  
-  
-  
-  
-; __Reliability__:  
-  
-Low. Often programs will warn or fail gracefully when  
-these areas fail or are filled up. Random file errors will of course  
-be more serious, no matter what file area this is.  
-  
-  
-  
-; __Files__:  
-  
-Mostly short files but there can be a huge number of  
-them. Normally programs delete their old tmp files but if somehow an  
-interruption occurs they could survive. Many distributions have a policy  
-regarding cleaning out tmp files at boot time, you might want to  
-check out what your setup is.  
-  
-  
-  
-; __Note1__:  
-  
-In FSSTND there is a note about putting /tmp on  
-RAM disk. This, however, is not recommended for the same reasons  
-as stated for swap. Also, as noted earlier, do not use flash RAM  
-drives for these directories. One should also keep in mind that some  
-systems are set to automatically clean tmp areas on rebooting.  
-  
-  
-  
-; __Note2__:  
-  
-Older systems had a /usr/tmp but this is no longer  
-recommended and for historical reasons a symbolic link now makes it  
-point to one of the other tmp areas.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-(* That was 50 lines, I am home and dry! *)  
-  
-  
-  
-  
-!Spool Areas (/var/spool/news and /var/spool/mail)  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-High, especially on large news servers. News transfer  
-and expiring are disk intensive and will benefit from fast drives.  
-Print spools: low. Consider RAID0 for news.  
-  
-  
-  
-; __Size__:  
-  
-For news/mail servers: whatever you can afford. For  
-single user systems a few MB will be sufficient if you read  
-continuously. Joining a list server and taking a holiday is, on the  
-other hand, not a good idea. (Again the machine I use at work  
-has 100 MB reserved for the entire /var/spool)  
-  
-  
-  
-; __Reliability__:  
-  
-Mail: very high, news: medium, print spool: low. If  
-your mail is very important (isn't it always?) consider RAID for  
-reliability.  
-  
-  
-  
-; __Files__:  
-  
-Usually a huge number of files that are around a few  
-KB in size. Files in the print spool can on the other hand be  
-few but quite sizable.  
-  
-  
-  
-; __Note__:  
-  
-Some of the news documentation suggests putting all  
-the .overview files on a drive separate from the news  
-files, check out all news FAQs for more information.  
-Typical size is about 3-10 percent of total news spool size.  
-  
-  
-  
-  
-  
-  
-  
-  
-! Home Directories (/home)  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Medium. Although many programs use /tmp for temporary  
-storage, others such as some news readers frequently update files in the  
-home directory which can be noticeable on large multiuser systems. For  
-small systems this is not a critical issue.  
-  
-  
-  
-; __Size__:  
-  
-Tricky! On some systems people pay for storage so this  
-is usually then a question of finance. Large systems such as  
-Nyx.net  
-(which is a free Internet service with mail, news and WWW services)  
-run successfully with a suggested limit of 100 KB per user and 300 KB as  
-enforced maximum. Commercial ISPs offer typically about 5 MB in their  
-standard subscription packages.  
-  
-  
-If however you are writing books or are doing design work the  
-requirements balloon quickly.  
-  
-  
-  
-; __Reliability__:  
-  
-Variable. Losing /home on a single user machine is  
-annoying but when 2000 users call you to tell you their home  
-directories are gone it is more than just annoying. For some their  
-livelihood relies on what is here. You do regular backups of course?  
-  
-  
-  
-; __Files__:  
-  
-Equally tricky. The minimum setup for a single user  
-tends to be a dozen files, .5 - 5 KB in size. Project related files  
-can be huge though.  
-  
-  
-  
-; __Note1__:  
-  
-You might consider RAID for either speed or  
-reliability. If you want extremely high speed and reliability you  
-might be looking at other operating system and hardware platforms anyway.  
-(Fault tolerance etc.)  
-  
-  
-  
-; __Note2__:  
-  
-Web browsers often use a local cache to speed up browsing and  
-this cache can take up a substantial amount of space and cause much disk  
-activity. There are many ways of avoiding this kind of performance hits,  
-for more information see the sections on  
-Home Directories  
-and  
-WWW.  
-  
-  
-  
-; __Note3__:  
-  
-Users often tend to use up all available space on the  
-/home partition. The Linux Quota subsystem is capable of  
-limiting the number of blocks and the number of inode a single user  
-ID can allocate on a per-filesystem basis. See the  
-Linux Quota mini-HOWTO by  
-Albert M.C. Tam bertie (at) scn.org  
-for details on setup.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-! Main Binaries ( /usr/bin and /usr/local/bin)  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Low. Often data is bigger than the programs which are  
-demand loaded anyway so this is not speed critical. Witness the  
-successes of live file systems on CD ROM.  
-  
-  
-  
-; __Size__:  
-  
-The sky is the limit but 200 MB should give you most of  
-what you want for a comprehensive system. A big system, for software  
-development or a multi purpose server should perhaps reserve 500 MB  
-both for installation and for growth.  
-  
-  
-  
-; __Reliability__:  
-  
-Low. This is usually mounted under root where all  
-the essentials are collected. Nevertheless losing all the binaries is  
-a pain...  
-  
-  
-  
-; __Files__:  
-  
-Variable but usually of the order of 10 - 100 KB.  
-  
-  
-  
-  
-  
-  
-  
-  
-!Libraries ( /usr/lib and /usr/local/lib)  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Medium. These are large chunks of data loaded often,  
-ranging from object files to fonts, all susceptible to bloating. Often  
-these are also loaded in their entirety and speed is of some use here.  
-  
-  
-  
-; __Size__:  
-  
-Variable. This is for instance where word processors  
-store their immense font files. The few that have given me feedback on  
-this report about 70 MB in their various lib directories.  
-A rather complete Debian 1.2 installation can take as much as  
-250 MB which can be taken as an realistic upper limit.  
-The following ones are some of the largest disk space consumers:  
-GCC, Emacs, TeX/LaTeX, X11 and perl.  
-  
-  
-  
-; __Reliability__:  
-  
-Low. See point  
-Main binaries.  
-  
-  
-  
-; __Files__:  
-  
-Usually large with many of the order of 1 MB in size.  
-  
-  
-  
-; __Note__:  
-  
-For historical reasons some programs keep executables in  
-the lib areas. One example is GCC which have some huge binaries in the  
-/usr/lib/gcc/lib hierarchy.  
-  
-  
-  
-  
-  
-!Boot  
-  
-  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Quite low: after all booting doesn't happen that often  
-and loading the kernel is just a tiny fraction of the time it takes  
-to get the system up and running.  
-  
-  
-  
-; __Size__:  
-  
-Quite small, a complete image with some extras  
-fit on a single floppy so 5 MB should be plenty.  
-  
-  
-  
-; __Reliability__:  
-  
-High. See section below on Root.  
-  
-  
-  
-; __Note 1__:  
-  
-The most important part about the Boot partition is that  
-on many systems it ''must'' reside below cylinder 1023. This is a  
-BIOS limitation that Linux cannot get around.  
-  
-  
-  
-; __Note 1a__:  
-  
-The above is not necessarily true for recent IDE systems  
-and not for any SCSI disks. For more information check the latest  
-Large Disk HOWTO.  
-  
-  
-  
-; __Note 2__:  
-  
-Recently a new boot loader has been written that overcomes  
-the 1023 sector limit. For more information check out this  
-article  
-on nuni.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Root  
-  
-  
-  
-  
-  
-; __Speed__:  
-  
-Quite low: only the bare minimum is here, much of  
-which is only run at startup time.  
-  
-  
-  
-; __Size__:  
-  
-Relatively small. However it is a good idea to keep  
-some essential rescue files and utilities on the root partition and  
-some keep several kernel versions. Feedback suggests about 20 MB would  
-be sufficient.  
-  
-  
-  
-; __Reliability__:  
-  
-High. A failure here will possibly cause a fair bit  
-of grief and you might end up spending some time rescuing your boot  
-partition. With some practice you can of course do this in an hour or  
-so, but I would think if you have some practice doing this you are  
-also doing something wrong.  
-  
-  
-Naturally you do have a rescue disk? Of course this is updated since  
-you did your initial installation? There are many ready made rescue  
-disks as well as rescue disk creation tools you might find valuable.  
-Presumably investing some time in this saves you from becoming a  
-root rescue expert.  
-  
-  
-  
-; __Note 1__:  
-  
-If you have plenty of drives you might consider putting  
-a spare emergency boot partition on a separate physical drive. It will  
-cost you a little bit of space but if your setup is huge the time saved,  
-should something fail, will be well worth the extra space.  
-  
-  
-  
-; __Note 2__:  
-  
-For simplicity and also in case of emergencies  
-it is not advisable to put the root partition on a RAID level 0 system.  
-Also if you use RAID for your boot partition you have to remember to  
-have the md option turned on for your emergency kernel.  
-  
-  
-  
-; __Note 3__:  
-  
-For simplicity it is quite common to keep Boot and Root  
-on the same partition. If you do that, then  
-in order to boot from LILO it is important that the  
-essential boot files reside wholly within cylinder 1023. This includes  
-the kernel as well as files found in /boot.  
-  
-  
-  
-  
-  
-  
-  
-  
-!DOS etc.  
-  
-  
-  
-  
-At the danger of sounding heretical I have included this little section  
-about something many reading this document have strong feelings about.  
-Unfortunately many hardware items come with setup and maintenance tools  
-based around those systems, so here goes.  
-  
-  
-  
-  
-; __Speed__:  
-  
-Very low. The systems in question are not famed for speed  
-so there is little point in using prime quality drives. Multitasking or  
-multi-threading are not available so the command queueing facility found  
-in SCSI drives will not be taken advantage of. If you have an old IDE  
-drive it should be good enough. The exception is to some degree Win95  
-and more notably NT which have multi-threading support which should  
-theoretically be able to take advantage of the more advanced features  
-offered by SCSI devices.  
-  
-  
-  
-; __Size__:  
-  
-The company behind these operating systems  
-is not famed for writing tight  
-code so you have to be prepared to spend a few tens of MB depending on  
-what version you install of the OS or Windows. With an old version of  
-DOS or Windows you might fit it all in on 50 MB.  
-  
-  
-  
-; __Reliability__:  
-  
-Ha-ha. As the chain is no stronger than the weakest link  
-you can use any old drive. Since the OS is more likely to scramble itself  
-than the drive is likely to self destruct you will soon learn the  
-importance of keeping backups here.  
-  
-  
-Put another way: "''Your mission, should you choose to accept it,  
-is to keep this partition working. The warranty will self destruct  
-in 10 seconds...''"  
-  
-  
-Recently I was asked to justify my claims here. First of all I am not  
-calling DOS and Windows sorry excuses for operating systems. Secondly  
-there are various legal issues to be taken into account. Saying there  
-is a connection between the last two sentences are merely the ravings of the  
-paranoid. Surely. Instead I shall offer the esteemed reader a few  
-key words: DOS 4., DOS 6.x and various drive compression tools that  
-shall remain nameless.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!4.2 Explanation of Terms  
-  
-  
-  
-  
-  
-Naturally the faster the better but often the happy installer of Linux  
-has several disks of varying speed and reliability so even though this  
-document describes performance as 'fast' and 'slow' it is just a rough  
-guide since no finer granularity is feasible. Even so there are a few  
-details that should be kept in mind:  
-  
-  
-  
-  
-  
-  
-  
-! Speed  
-  
-  
-  
-  
-This is really a rather woolly mix of several terms: CPU load,  
-transfer setup overhead, disk seek time and transfer rate. It is in  
-the very nature of tuning that there is no fixed optimum, and in most  
-cases price is the dictating factor. CPU load is only significant for  
-IDE systems where the CPU does the transfer itself  
-but is generally low for SCSI, see SCSI documentation  
-for actual numbers. Disk seek time is also small, usually in the  
-millisecond range. This however is not a problem if you use command  
-queueing on SCSI where you then overlap commands keeping the bus busy  
-all the time. News spools are a special case consisting of a huge  
-number of normally small files so in this case seek time can become  
-more significant.  
-  
-  
-There are two main parameters that are of interest here:  
-  
-  
-  
-  
-; __Seek__:  
-  
-is usually specified in the average time take for the  
-read/write head to seek from one track to another. This parameter  
-is important when dealing with a large number of small files such  
-as found in spool files.  
-There is also the extra seek delay before the desired sector rotates  
-into position under the head. This delay is dependent on the angular  
-velocity of the drive which is why this parameter quite often is  
-quoted for a drive. Common values are 4500, 5400 and 7200 RPM (rotations  
-per minute). Higher RPM reduces the seek time but at a substantial cost.  
-Also drives working at 7200 RPM have been known to be noisy and to  
-generate a lot of heat, a factor that should be kept in mind if you  
-are building a large array or "disk farm". Very recently drives working  
-at 10000 RPM has entered the market and here the cooling requirements  
-are even stricter and minimum figures for air flow are given.  
-  
-  
-  
-; __Transfer__:  
-  
-is usually specified in megabytes per second.  
-This parameter is important when handling large files that  
-have to be transferred. Library files, dictionaries and image files  
-are examples of this. Drives featuring a high rotation speed also  
-normally have fast transfers as transfer speed is proportional to  
-angular velocity for the same sector density.  
-  
-  
-  
-It is therefore important to read the specifications for the drives  
-very carefully, and note that the maximum transfer speed quite often  
-is quoted for transfers out of the on board cache (burst speed)  
-and ''not''  
-directly from the platter (sustained speed).  
-See also section on  
-Power and Heating.  
-  
-  
-  
-  
-  
-  
-  
-!Reliability  
-  
-  
-  
-  
-Naturally no-one would want low reliability disks but one might be  
-better off regarding old disks as unreliable. Also for RAID purposes  
-(See the relevant information) it is suggested to use a mixed set of disks  
-so that simultaneous disk crashes become less likely.  
-  
-  
-So far I have had only one report of total file system failure but  
-here unstable hardware seemed to be the cause of the problems.  
-  
-  
-Disks are cheap these days yet people still underestimate the  
-value of the contents of the drives. If you need higher reliability  
-make sure you replace old drives and keep spares. It is not unusual  
-that drives can work more or less continuous for years and years but  
-what often kills a drive in the end is power cycling.  
-  
-  
-  
-  
-!Files  
-  
-  
-  
-  
-The average file size is important in order to decide the most  
-suitable drive parameters. A large number of small files makes the  
-average seek time important whereas for big files the transfer speed  
-is more important. The command queueing in SCSI devices is very  
-handy for handling large numbers of small files, but for transfer EIDE  
-is not too far behind SCSI and normally much cheaper than SCSI.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!5. File Systems  
-  
-  
-  
-  
-Over time the requirements for file systems have increased and the  
-demands for large structures, large files, long file names and more  
-has prompted ever more advanced file systems, the system that  
-accesses and organises the data on mass storage.  
-Today there is a large number of file systems to choose from and this  
-section will describe these in detail.  
-  
-  
-The emphasis is on Linux but with more input I will be happy to add  
-information for a wider audience.  
-  
-  
-  
-  
-  
-  
-  
-!!5.1 General Purpose File Systems  
-  
-  
-  
-Most operating systems usually have a general purpose file system for  
-every day use for most kinds of files, reflecting available features  
-in the OS such as permission flags, protection and recovery.  
-  
-  
-  
-  
-!minix  
-  
-  
-  
-  
-This was the original fs for Linux, back in the days Linux was hosted  
-on minix machines. It is simple but limited in features and hardly ever  
-used these days other than in some rescue disks as it is rather compact.  
-  
-  
-  
-  
-!xiafs and extfs  
-  
-  
-  
-  
-  
-These are also old and have fallen in disuse and are no longer recommended.  
-  
-  
-  
-  
-!ext2fs  
-  
-  
-  
-  
-This is the established standard for general purpose in the Linux world.  
-It is fast, efficient and mature and is under continuous development and  
-features such as ACL and transparent compression are on the horizon.  
-  
-  
-For more information check the  
-ext2fs  
-home page.  
-  
-  
-  
-  
-  
-  
-  
-!ext3fs  
-  
-  
-  
-  
-This is the name for the upcoming successor to ext2fs due to enter  
-stable kernel in the near future. Many features are added to  
-ext2fs but to avoid confusion over the name after such a radical  
-upgrade the name will be changed too. You may have heard of it already  
-but source code is now in beta release .  
-  
-  
-Patches are available at  
-Linux.org.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!ufs  
-  
-  
-  
-  
-This is the fs used by BSD and variants thereof. It is mature but also  
-developed for older types of disk drives where geometries were known. The  
-fs uses a number of tricks to optimise performance but as disk geometries  
-are translated in a number of ways the net effect is no longer so optimal.  
-  
-  
-  
-  
-  
-  
-  
-!efs  
-  
-  
-  
-  
-The Extent File System (efs) is Silicon Graphics' early file system  
-widely used on IRIX before version 6.0 after which xfs has taken over.  
-While migration to xfs is encouraged efs is still supported  
-and much used on CDs.  
-  
-  
-There is a Linux driver available in early beta stage, available at  
-Linux extent file system  
-home page.  
-  
-  
-  
-  
-  
-  
-  
-!XFS  
-  
-  
-  
-  
-Silicon Graphics Inc (sgi)  
-has started porting its mainframe grade file system to Linux.  
-Source is not yet available as they are busily cleaning out  
-legal encumbrance but once that is done they will provide the  
-source code under GPL.  
-  
-  
-More information is already available on the  
-XFS project page  
-at SGI.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!reiserfs  
-  
-  
-  
-  
-  
-As of July, 23th 1997  
-Hans Reiser reiser (at) RICOCHET.NET  
-has put up the source to his tree based  
-reiserfs  
-on the web. While his filesystem has some very interesting features and  
-is much faster than ext2fs and is in use by a number of people.  
-Hopefully it will be ready for kernel 2.4.0 which might be ready at  
-the end of the year.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!enh-fs  
-  
-  
-  
-  
-The Enhanced File System project is now dead.  
-  
-  
-  
-  
-  
-  
-  
-!Tux2 fs  
-  
-  
-  
-  
-This is a variation on the ext2fs that adds robustness  
-in case of unexpected interruptions such as power failure.  
-After such an event Tux2 fs will restart with the file system  
-in a consistent, recently recorded state without fsck or  
-other recovery operations. To achieve this Tux2 fs uses  
-a newly designed algorithm called Phase Tree.  
-  
-  
-More information can be found at the  
-project home page.  
-  
-  
-  
-  
-  
-  
-  
-!!5.2 Microsoft File Systems  
-  
-  
-  
-  
-  
-  
-This company is responsible for a lot, including a number of filesystems  
-that has at the very least caused confusions.  
-  
-  
-  
-  
-  
-  
-  
-!fat  
-  
-  
-  
-  
-Actually there are 2 fats out there, fat12 and fat16  
-depending on the partition size used but fortunately the difference  
-is so minor that the whole issue is transparent.  
-  
-  
-On the plus side these are fast and simple and most OSes understands  
-it and can both read and write this fs. And that is about it.  
-  
-  
-The minus side is limited safety, severely limited permission flags  
-and atrocious scalability. For instance with fat you cannot  
-have partitions larger than 2 GB.  
-  
-  
-  
-  
-  
-  
-  
-!fat32  
-  
-  
-  
-  
-After about 10 years Microsoft realised fat was about, well, 10 years  
-behind the times and created this fs which scales reasonably well.  
-  
-  
-Permission flags are still limited.  
-NT 4.0 cannot read this file system but Linux can.  
-  
-  
-  
-  
-  
-  
-  
-!vfat  
-  
-  
-  
-  
-At the same time as Microsoft launched fat32 they also added  
-support for long file names, known as vfat.  
-  
-  
-Linux reads vfat and fat32 partitions by mounting with  
-type vfat.  
-  
-  
-  
-  
-  
-  
-  
-!ntfs  
-  
-  
-  
-  
-This is the native fs of Win-NT but as complete information is not available  
-there is limited support for other OSes.  
-  
-  
-  
-  
-  
-  
-  
-!!5.3 Logging and Journaling File Systems  
-  
-  
-  
-  
-  
-  
-These take a radically different approach to file updates by  
-logging modifications for files in a log and later at some  
-time checkpointing the logs.  
-  
-  
-Reading is roughly as fast as traditional file systems that  
-always update the files directly.  
-Writing is much faster as only updates are appended to a log.  
-All this is transparent to the user. It is in reliability and  
-particularly in checking file system integrity that these  
-file systems really shine.  
-Since the data before last checkpointing is known to be good  
-only the log has to be checked, and this is much faster than  
-for traditional file systems.  
-  
-  
-Note that while  
-''logging'' filesystems keep track of changes made to both data and inodes,  
-''journaling'' filesystems keep track only of inode changes.  
-  
-  
-Linux has quite a choice in such file systems but none are  
-yet in production quality. Some are also on hold.  
-  
-  
-  
-  
-  
-*Adam Richter from Yggdrasil posted some time ago that they have been  
-working on a compressed log file based system but that this project is  
-currently on hold. Nevertheless a non-working version is available on  
-their FTP server. Check out  
-the Yggdrasil ftp server  
-where special patched versions of the kernel can be found.  
-  
-*  
-  
-*Another project is the  
-Linux log-structured Filesystem Project  
-which sadly also is on hold. Nevertheless this page contains  
-much information on the topic.  
-  
-*  
-  
-*Then there is the  
-LinLogFS -- A Log-Structured Filesystem For Linux  
-(formerly known as dtfs)  
-which seems to be going strong. Still in alpha but sufficiently  
-complete to make programs run off this file system  
-  
-*  
-  
-*Finally there is the  
-Journaling Flash File System  
-designed for their embedded diskless systems such as  
-their Linux based web camera.  
-  
-*  
-  
-  
-  
-Note that ext3fs, XFS and reiserfs also have  
-features for logging or journaling.  
-  
-  
-  
-  
-!!5.4 Read-only File Systems  
-  
-  
-  
-  
-  
-Read-only media has not escaped the ever increasing complexities  
-seen in more general file systems so again there is a large choice  
-to choose from with corresponding opportunities for exciting mistakes.  
-  
-  
-Note that ext2fs works quite well on a CD-ROM  
-and seems to save space while offering the normal file system features  
-such as long file names and permissions that can be retained when  
-copying files across to read-write media. Also having  
-/dev  
-on a CD-ROM is possible.  
-  
-  
-  
-  
-  
-  
-Most of these are used with the CD-ROM media but also the new  
-DVD can be used and you can even use it through the loopback device  
-on a hard disk file for verifying an image before burning a ROM.  
-  
-  
-  
-  
-  
-There is a read-only romfs for Linux but as that is not disk  
-related nothing more will be said about it here.  
-  
-  
-  
-  
-!High Sierra  
-  
-  
-  
-  
-This was one of the earliest standards for CD-ROM formats,  
-supposedly named after the hotel where the final agreement took place.  
-  
-  
-High Sierra was so limited in features that new extensions simply  
-had to appear and while there has been no end to new formats the original  
-High Sierra remains the common precursor and is therefore still  
-widely supported.  
-  
-  
-  
-  
-  
-  
-  
-!iso9660  
-  
-  
-  
-  
-The International Standards Organisation made their extensions and  
-formalised the standard into what we know as the iso9660 standard.  
-  
-  
-The Linux iso9660 file system supports both High Sierra as well as  
-Rock Ridge extensions.  
-  
-  
-  
-  
-  
-  
-  
-!Rock Ridge  
-  
-  
-  
-  
-Not everyone accepts limits like short filenames and lack of permissions  
-so very soon the Rock Ridge extensions appeared to rectify these  
-shortcomings.  
-  
-  
-  
-  
-  
-  
-  
-!Joliet  
-  
-  
-  
-  
-Microsoft, not be be outdone in the standards extension game, decided  
-it should extend CD-ROM formats with some internationalisation features  
-and called it Joliet.  
-  
-  
-Linux supports this standards in kernels 2..34 or newer.  
-You need to enable NLS in order to use it.  
-  
-  
-  
-  
-  
-  
-  
-!Trivia  
-  
-  
-  
-  
-Joliet is a city outside Chicago; best known for being the site of  
-the prison where Jake was locked up in the movie "Blues Brothers."  
-Rock Ridge (the UNIX extensions to ISO 9660) is named  
-after the (fictional) town in the movie "Blazing Saddles."  
-  
-  
-  
-  
-  
-  
-  
-!UDF  
-  
-  
-  
-  
-With the arrival of DVD with up to about 17 GB of storage capacity  
-the world seemingly needed another format, this time ambitiously named  
-Universal Disk Format (UDF).  
-This is intended to replace iso9660 and will be required for DVD.  
-  
-  
-Currently this is not in the standard Linux kernel but a project  
-is underway to make a  
-http://trylinux.com/projects/udf/index.html  
-name="UDF driver">  
-for Linux. Patches and documentation are available.  
-  
-  
-More information is also available at the  
-Linux and DVDs  
-page.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!5.5 Networking File Systems  
-  
-  
-  
-  
-  
-There is a large number of networking technologies available that  
-lets you distribute disks throughout a local or even global networks.  
-This is somewhat peripheral to the topic of this HOWTO but as it can  
-be used with local disks I will cover this briefly. It would be best  
-if someone (else) took this into a separate HOWTO...  
-  
-  
-  
-  
-!NFS  
-  
-  
-  
-  
-This is one of the earliest systems that allows mounting a file space  
-on one machine onto another. There are a number of problems with NFS  
-ranging from performance to security but it has nevertheless become  
-established.  
-  
-  
-  
-  
-!AFS  
-  
-  
-  
-  
-This is a system that allows efficient sharing of files  
-across large networks. Starting out as an academic project  
-it is now sold by  
-Transarc  
-whose home page gives you more details.  
-  
-  
-Derek Atkins, of MIT, ported AFS to Linux and has also set up the  
-Linux AFS mailing List (  
-linux-afs@mit.edu)  
-for this which is open to the public.  
-Requests to join the list should go to  
-linux-afs-request@mit.edu  
-and finally bug reports should be directed to  
-linux-afs-bugs@mit.edu.  
-  
-  
-Important: as AFS uses encryption it is  
-restricted software and cannot easily be exported from the US.  
-  
-  
-IBM who owns Transarc, has announced the availability of the latest  
-version of client as well as server for Linux.  
-  
-  
-Arla is a free AFS implementation, check the  
-Arla homepage  
-for more information as well as documentation.  
-  
-  
-  
-  
-  
-  
-  
-!Coda  
-  
-  
-  
-  
-A networking filesystem similar to AFS is underway and is called  
-Coda.  
-This is designed to be more robust and fault tolerant than AFS,  
-and supports mobile, disconnected operations.  
-Currently it does not scale very well, and does not really have  
-proper administrative tools, as AFS does and ARLA is  
-beginning to.  
-  
-  
-  
-  
-  
-  
-  
-!nbd  
-  
-  
-  
-  
-  
-The  
-Network Block Device  
-(nbd) is available in Linux kernel 2.2  
-and later and offers reportedly excellent performance. The interesting  
-thing here is that it can be combined with RAID (see later).  
-  
-  
-  
-  
-  
-  
-  
-!enbd  
-  
-  
-  
-  
-  
-The  
-http://www.it.uc3m.es/~ptb/nbd  
-name="Enhanced Network Block Device">  
-(enbd) is a project to enhance the nbd with  
-features such as block journaled multi channel communications,  
-internal failover and automatic balancing between channels  
-and more.  
-  
-  
-The intended use is for RAID over the net.  
-  
-  
-  
-  
-!GFS  
-  
-  
-  
-  
-  
-The  
-Global File System  
-is a new file system designed for storage across a wide area network.  
-It is currently in the early stages and more information will come  
-later.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!5.6 Special File Systems  
-  
-  
-  
-In addition to the general file systems there is also a number of  
-more specific ones, usually to provide higher performance or other  
-features, usually with a tradeoff in other respects.  
-  
-  
-  
-  
-  
-  
-  
-! tmpfs and swapfs  
-  
-  
-  
-  
-  
-For short term fast file storage SunOS offers tmpfs which is  
-about the same as the swapfs on NeXT.  
-This overcomes the inherent slowness in ufs by caching file data  
-and keeping control information in memory. This means that data on such  
-a file system will be lost when rebooting and is therefore mainly  
-suitable for /tmp area but not /var/tmp which is where  
-temporary data that must survive a reboot, is placed.  
-  
-  
-SunOS offers very limited tuning for tmpfs and the number of  
-files is even limited by total physical memory of the machine.  
-  
-  
-  
-  
-  
-Linux now features tmpfs since kernel version 2.4 and is  
-enabled by turning on virtual memory file system support (former shm fs).  
-Under certain circumstances tmpfs can lock up the system in  
-early kerbel versions, make sure you use version 2.4.6 or later.  
-  
-  
-  
-  
-  
-  
-  
-!userfs  
-  
-  
-  
-  
-  
-  
-The user file system (userfs) allows a number of extensions to  
-traditional file system use such as  
-FTP based file system, compression (arcfs) and fast prototyping  
-and many other features. The docfs is based on this filesystem.  
-Check the  
-userfs homepage  
-for more information.  
-  
-  
-  
-  
-  
-  
-  
-!devfs  
-  
-  
-  
-  
-When disks are added, removed or just fail it is likely that  
-disk device names of the remaining disks will change.  
-For instance if sdb fails then the old sdc becomes sdb,  
-the old sdc becomes sdb and so on.  
-Note that in this case hda, hdb etc will remain unchanged.  
-Likewise if a new drive is added the reverse may happen.  
-  
-  
-There is no guarantee that SCSI ID 0 becomes sda and that adding  
-disks in increasing ID order will just add a new device name without  
-renaming previous entries, as some SCSI drivers assign from ID 0 and up  
-while others reverse the scanning order.  
-Likewise adding a SCSI host adapter can also cause renaming.  
-  
-  
-Generally device names are assigned in the order they are found.  
-  
-  
-The source of the problem lies in the limited number of bits available  
-for major and minor numbering in the device files used to describe the  
-device itself. You an see these in the  
-/dev  
-directory, info  
-on the numbering and allocation can be found in man MAKEDEV.  
-Currently there are 2 solutions to this problem in various stages of  
-development:  
-  
-; __scsidev__:  
-  
-works by creating a database of drives and where they  
-belong, check '' man scsifs'' and the  
-scsidev home page  
-for more information  
-; __devfs__:  
-  
-is a more long term project aimed at getting around the  
-whole business of device numbering by making the  
-/dev  
-directory a kernel file system in the same way as  
-/proc  
-is.  
-More information will appear as it becomes available.  
-  
-  
-  
-  
-  
-  
-  
-  
-!smugfs  
-  
-  
-  
-  
-  
-For a number of reasons it is currently difficult to have files  
-bigger than 2 GB. One file system that tries to overcome this  
-limit is smugfs which is very fast but also simple. For instance  
-there are no directories and the block allocation is simple.  
-  
-  
-It is available as  
-compressed tarred source code  
-and while it worked with kernel version 2.1.85 it is quite possible some  
-work is required to make it fit into newer kernels. Also the low version  
-number (.) suggests extra care is required.  
-  
-  
-  
-  
-  
-  
-  
-!!5.7 File System Recommendations  
-  
-  
-  
-There is a jungle of choices but generally it is recommended to  
-use the general file system that comes with your distribution.  
-If you use ufs and have some kind of tmpfs available  
-you should first start off with the general file system to get  
-an idea of the space requirements and if necessary buy more  
-RAM to support the size of tmpfs you need. Otherwise you  
-will end up with mysterious crashes and lost time.  
-  
-  
-If you use dual boot and need to transfer data between the two  
-OSes one of the simplest ways is to use an appropriately sized  
-partition formatted with fat as most systems can reliably  
-read and write this.  
-Remember the limit of 2 GB for fat partitions.  
-  
-  
-For more information of file system interconnectivity you can  
-check out the  
-file system  
-page  
-which has been superseded by  
-file system  
-and the article  
-Kragen's Amazing List of Filesystems.  
-  
-  
-  
-  
-  
-That guide is being superseded by a HOWTO which is underway and  
-a link will be added when it is ready.  
-  
-  
-To avoid total havoc with device renaming if a drive fails  
-check out the scanning order of your system and try to keep  
-your root system on hda or sda and removable media  
-such as ZIP drives at the end of the scanning order.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 6. Technologies  
-  
-  
-  
-  
-In order to decide how to get the most of your devices you need to  
-know what technologies are available and their implications. As always  
-there can be some tradeoffs with respect to speed, reliability, power,  
-flexibility, ease of use and complexity.  
-  
-  
-Many of the techniques described below can be stacked in a number  
-of ways to maximise performance and reliability, though at the cost  
-of added complexity.  
-  
-  
-  
-  
-  
-  
-  
-!! 6.1 RAID  
-  
-  
-  
-  
-  
-This is a method of increasing reliability, speed or both by using multiple  
-disks in parallel thereby decreasing access time and increasing transfer  
-speed. A checksum or mirroring system can be used to increase reliability.  
-Large servers can take advantage of such a setup but it might be overkill  
-for a single user system unless you already have a large number of disks  
-available. See other documents and FAQs for more information.  
-  
-  
-For Linux one can set up a RAID system using either software  
-(the md module in the kernel), a Linux compatible  
-controller card (PCI-to-SCSI) or a SCSI-to-SCSI controller. Check the  
-documentation for what controllers can be used. A hardware solution is  
-usually faster, and perhaps also safer, but comes at a significant cost.  
-  
-  
-A summary of available hardware RAID solutions for Linux is available  
-at  
-Linux Consulting.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-! SCSI-to-SCSI  
-  
-  
-  
-  
-SCSI-to-SCSI controllers are usually implemented as complete cabinets  
-with drives and a controller that connects to the computer with a  
-second SCSI bus. This makes the entire cabinet of drives look like a  
-single large, fast SCSI drive and requires no special RAID driver. The  
-disadvantage is that the SCSI bus connecting the cabinet to the  
-computer becomes a bottleneck.  
-  
-  
-A significant disadvantage for people with large disk farms is that there  
-is a limit to how many SCSI entries there can be in the  
-/dev  
-directory. In these cases using SCSI-to-SCSI will conserve entries.  
-  
-  
-Usually they are configured via the front panel or with a terminal  
-connected to their on-board serial interface.  
-  
-  
-  
-  
-  
-Some manufacturers of such systems are  
-CMD  
-and  
-Syred  
-whose web pages describe several systems.  
-  
-  
-  
-  
-  
-  
-  
-! PCI-to-SCSI  
-  
-  
-  
-  
-PCI-to-SCSI controllers are, as the name suggests,  
-connected to the high speed PCI  
-bus and is therefore not suffering from the same bottleneck as the  
-SCSI-to-SCSI controllers. These controllers require special drivers  
-but you also get the means of controlling the RAID configuration over  
-the network which simplifies management.  
-  
-  
-Currently only a few families of PCI-to-SCSI host adapters  
-are supported under Linux.  
-  
-  
-  
-  
-  
-  
-  
-; __DPT__:  
-  
-The oldest and most mature is a range of controllers from  
-DPT  
-including !SmartCache I/III/IV and SmartRAID I/III/IV controller families.  
-These controllers are supported by the EATA-DMA driver in  
-the standard kernel. This company also has an informative  
-home page  
-which also describes various general aspects  
-of RAID and SCSI in addition to the product related information.  
-  
-  
-More information from the author of the DPT controller drivers  
-(EATA* drivers) can be found at his pages on  
-SCSI  
-and  
-DPT.  
-  
-  
-These are not the fastest but have a good track record of  
-proven reliability.  
-  
-  
-Note that the maintenance tools for DPT controllers currently  
-run under DOS/Win only so you will need a small DOS/Win partition  
-for some of the software. This also means you have to boot the  
-system into Windows in order to maintain your RAID system.  
-  
-  
-  
-  
-  
-  
-; __ICP-Vortex__:  
-  
-A very recent addition is a range of controllers from  
-ICP-Vortex  
-featuring up to 5 independent channels and very fast hardware  
-based on the i960 chip. The Linux driver was written by the  
-company itself which shows they support Linux.  
-  
-  
-As ICP-Vortex supplies the maintenance software for Linux it is  
-not necessary with a reboot to other operating systems for the  
-setup and maintenance of your RAID system. This saves you also  
-extra downtime.  
-  
-  
-  
-  
-  
-  
-; __Mylex DAC-960__:  
-  
-This is one of the latest entries which is out in early beta.  
-More information as well as drivers are available at  
-Dandelion Digital's Linux DAC960 Page.  
-  
-  
-  
-  
-  
-  
-; __Compaq Smart-2 PCI Disk Array Controllers__:  
-  
-Another very recent entry and currently in beta release is the  
-Smart-2  
-driver.  
-  
-  
-  
-; __IBM ServeRAID__:  
-  
-IBM has released their  
-driver  
-as GPL.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-! Software RAID  
-  
-  
-  
-  
-A number of operating systems offer software RAID using  
-ordinary disks and controllers. Cost is low and performance  
-for raw disk IO can be very high.  
-As this can be very CPU intensive it increases the load noticeably  
-so if the machine is CPU bound in performance rather then IO bound  
-you might be better off with a hardware PCI-to-RAID controller.  
-  
-  
-Real cost, performance and especially reliability of software  
-vs. hardware RAID is a very controversial topic. Reliability  
-on Linux systems have been very good so far.  
-  
-  
-The current software RAID project on Linux is the md system  
-(multiple devices) which offers much more than RAID so it is  
-described in more details later.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-! RAID Levels  
-  
-  
-  
-  
-RAID comes in many levels and flavours which I will give a brief  
-overview of this here. Much has been written about it and the  
-interested reader is recommended to read more about this in the  
-Software RAID HOWTO.  
-  
-  
-  
-  
-  
-*RAID '''' is not redundant at all but offers the best  
-throughput of all levels here. Data is striped across a number of  
-drives so read and write operations take place in parallel across  
-all drives. On the other hand if a single drive fail then  
-everything is lost. Did I mention backups?  
-  
-*  
-  
-*RAID ''1'' is the most primitive method of obtaining redundancy  
-by duplicating data across all drives. Naturally this is  
-massively wasteful but you get one substantial advantage which is  
-fast access.  
-The drive that access the data first wins. Transfers  
-are not any faster than for a single drive, even though you might  
-get some faster read transfers by using one track reading per  
-drive.  
-Also if you have only 2 drives this is the only method of achieving  
-redundancy.  
-  
-*  
-  
-*RAID ''2'' and ''4'' are not so common and are not covered  
-here.  
-  
-*  
-  
-*RAID ''3'' uses a number of disks (at least 2) to store data  
-in a striped RAID 0 fashion. It also uses an additional redundancy  
-disk to store the XOR sum of the data from the data disks. Should  
-the redundancy disk fail, the system can continue to operate as if  
-nothing happened. Should any single data disk fail the system can  
-compute the data on this disk from the information on the redundancy  
-disk and all remaining disks. Any double fault will bring the whole  
-RAID set off-line.  
-RAID 3 makes sense only with at least 2 data disks (3 disks  
-including the redundancy disk). Theoretically there is no limit for  
-the number of disks in the set, but the probability of a fault  
-increases with the number of disks in the RAID set. Usually the  
-upper limit is 5 to 7 disks in a single RAID set.  
-Since RAID 3 stores all redundancy information on a dedicated disk  
-and since this information has to be updated whenever a write to any  
-data disk occurs, the overall write speed of a RAID 3 set is limited  
-by the write speed of the redundancy disk. This, too, is a limit for  
-the number of disks in a RAID set. The overall read speed of a RAID  
-3 set with all data disks up and running is that of a RAID 0 set  
-with that number of data disks. If the set has to reconstruct data  
-stored on a failed disk from redundant information, the performance  
-will be severely limited: All disks in the set have to be read and  
-XOR-ed to compute the missing information.  
-  
-*  
-  
-*RAID ''5'' is just like RAID 3, but the redundancy  
-information is spread on all disks of the RAID set. This improves  
-write performance, because load is distributed more evenly between  
-all available disks.  
-  
-*  
-  
-  
-  
-There are also hybrids available based on RAID 0 or 1 and one other  
-level. Many combinations are possible but I have only seen a few  
-referred to. These are more complex than the above mentioned  
-RAID levels.  
-  
-  
-RAID ''/1'' combines striping with duplication which  
-gives very high transfers combined with fast seeks as well as  
-redundancy. The disadvantage is high disk consumption as well as  
-the above mentioned complexity.  
-  
-  
-RAID ''1/5'' combines the speed and redundancy benefits of  
-RAID5 with the fast seek of RAID1. Redundancy is improved compared  
-to RAID /1 but disk consumption is still substantial. Implementing  
-such a system would involve typically more than 6 drives, perhaps  
-even several controllers or SCSI channels.  
-  
-  
-  
-  
-  
-  
-  
-!! 6.2 Volume Management  
-  
-  
-  
-  
-  
-Volume management is a way of overcoming the constraints of fixed  
-sized partitions and disks while still having a control of where  
-various parts of file space resides. With such a system you can  
-add new disks to your system and add space from this drive to parts  
-of the file space where needed, as well as migrating data out from  
-a disk developing faults to other drives before catastrophic failure  
-occurs.  
-  
-  
-The system developed by  
-Veritas  
-has become the defacto standard for logical volume management.  
-  
-  
-Volume management is for the time being an area where Linux is lacking.  
-  
-  
-One is the virtual partition system project  
-VPS  
-that will reimplement many of the volume management functions found in  
-IBM's AIX system. Unfortunately this project is currently on hold.  
-  
-  
-Another project is the  
-Logical Volume Manager  
-project that is similar to a project by HP.  
-  
-  
-  
-  
-  
-  
-  
-!!6.3 Linux md Kernel Patch  
-  
-  
-  
-  
-  
-  
-  
-  
-The Linux Multi Disk (md) provides a number of block level features  
-in various stages of development.  
-  
-  
-RAID 0 (striping) and concatenation are very solid and in production quality  
-and also RAID 4 and 5 are quite mature.  
-  
-  
-It is also possible to stack some  
-levels, for instance mirroring (RAID 1) two pairs of drives,  
-each pair set up as striped disks (RAID ),  
-which offers the speed of RAID 0 combined with the reliability of RAID 1.  
-  
-  
-In addition to RAID this system offers (in alpha stage) block level  
-volume management and soon also translucent file space.  
-Since this is done on the block level it can be used in combination  
-with any file system, even for fat using Wine.  
-  
-  
-Think very carefully what drives you combine so you can operate all drives  
-in parallel, which gives you better performance and less wear. Read more  
-about this in the documentation that comes with md.  
-  
-  
-  
-  
-  
-Unfortunately The Linux software RAID has split into two trees,  
-the old stable versions .35 and .42 which are documented in the  
-official  
-Software-RAID HOWTO  
-and the newer less stable .90 series which is documented in the  
-unofficial  
-Software RAID HOWTO  
-which is a work in progress.  
-  
-  
-A  
-patch for online growth of ext2fs  
-is available in early stages  
-and related work is taking place at  
-the ext2fs resize project  
-at Sourceforge.  
-  
-  
-  
-  
-  
-  
-  
-  
-Hint: if you cannot get it to work properly you have forgotten to set  
-the persistent-block flag. Your best documentation is currently  
-the source code.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!6.4 Compression  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-Disk compression versus file compression  
-is a hotly debated topic especially regarding  
-the added danger of file corruption. Nevertheless there are several options  
-available for the adventurous administrators. These take on many forms,  
-from kernel modules and patches to extra libraries but note that most  
-suffer various forms of limitations such as being read-only. As development  
-takes place at neck breaking speed the specs have undoubtedly changed by the  
-time you read this. As always: check the latest updates yourself. Here only  
-a few references are given.  
-  
-  
-  
-  
-  
-*!DouBle features file compression with some limitations.  
-*  
-  
-*Zlibc adds transparent on-the-fly decompression of files as they load.  
-*  
-  
-*there are many modules available for reading compressed files or  
-partitions that are native to various other operating systems though  
-currently most of these are read-only.  
-*  
-  
-*  
-dmsdos  
-(currently in version .9.2.) offer many of the compression  
-options available for DOS and Windows. It is not yet complete but work is  
-ongoing and new features added regularly.  
-*  
-  
-*e2compr is a package that extends ext2fs with compression  
-capabilities. It is still under testing and will therefore mainly be of  
-interest for kernel hackers but should soon gain stability for wider use.  
-Check the  
-http://e2compr.memalpha.cx/e2compr/  
-name="e2compr homepage">  
-for more information. I have reports of speed and good stability  
-which is why it is mentioned here.  
-*  
-  
-  
-  
-  
-  
-  
-  
-  
-!!6.5 ACL  
-  
-  
-  
-  
-  
-Access Control List (ACL) offers finer control over file access  
-on a user by user basis, rather than the traditional owner, group  
-and others, as seen in directory listings (drwxr-xr-x). This  
-is currently not available in Linux but is expected in kernel 2.3  
-as hooks are already in place in ext2fs.  
-  
-  
-  
-  
-  
-  
-  
-!!6.6 cachefs  
-  
-  
-  
-  
-  
-This uses part of a hard disk to cache slower media such as CD-ROM.  
-It is available under SunOS but not yet for Linux.  
-  
-  
-  
-  
-  
-  
-  
-!!6.7 Translucent or Inheriting File Systems  
-  
-  
-  
-  
-  
-  
-This is a copy-on-write system where writes go to a different system  
-than the original source while making it look like an ordinary file  
-space. Thus the file space inherits the original data and the  
-translucent write back buffer can be private to each user.  
-  
-  
-There is a number of applications:  
-  
-  
-*updating a live file system on CD-ROM, making it flexible, fast  
-while also conserving space,  
-*  
-  
-*original skeleton files for each new user, saving space since the  
-original data is kept in a single space and shared out,  
-*  
-  
-*parallel project development prototyping where every user can  
-seemingly modify the system globally while not affecting other users.  
-*  
-  
-  
-  
-SunOS offers this feature and this is under development for Linux.  
-There was an old project called the Inheriting File Systems (ifs)  
-but this project has stopped.  
-One current project is part of the md system and offers  
-block level translucence so it can be applied to any file system.  
-  
-  
-Sun has an informative  
-page  
-on translucent file system.  
-  
-  
-It should be noted that  
-Clearcase (now owned by Rational)  
-pioneered and popularized translucent filesystems for software  
-configuration management by writing their own UNIX filesystem.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!! 6.8 Physical Track Positioning  
-  
-  
-  
-  
-  
-  
-This trick used to be very important when drives were slow and small,  
-and some file systems used to take the varying characteristics into  
-account when placing files. Although higher overall speed, on board  
-drive and controller caches and intelligence  
-has reduced the effect of this.  
-  
-  
-Nevertheless there is still a little to be gained even today.  
-As we know, "''world dominance''" is soon within reach  
-but to achieve this "''fast''" we need to employ all the tricks  
-we can use  
- .  
-  
-  
-To understand the strategy we need to recall this near ancient piece  
-of knowledge and the properties of the various track locations.  
-This is based on the fact that transfer speeds generally increase for tracks  
-further away from the spindle, as well as the fact that it is faster  
-to seek to or from the central tracks than to or from the inner or outer  
-tracks.  
-  
-  
-Most drives use disks running at constant angular velocity but use  
-(fairly) constant data density across all tracks. This means that  
-you will get much higher transfer rates on the outer tracks than  
-on the inner tracks; a characteristics which fits the requirements  
-for large libraries well.  
-  
-  
-Newer disks use a logical geometry mapping which differs from the actual  
-physical mapping which is transparently mapped by the drive itself.  
-This makes the estimation of the "middle" tracks a little harder.  
-  
-  
-In most cases track 0 is at the outermost track and this is the general  
-assumption most people use. Still, it should be kept in mind that there  
-are no guarantees this is so.  
-  
-  
-  
-  
-  
-  
-  
-; __Inner__:  
-  
-tracks are usually slow in transfer, and lying at one  
-end of the seeking position it is also slow to seek to.  
-  
-  
-This is more suitable to the low end directories such as DOS, root  
-and print spools.  
-  
-  
-  
-; __Middle__:  
-  
-tracks are on average faster with respect to transfers  
-than inner tracks and being in the middle also on average faster to  
-seek to.  
-  
-  
-This characteristics is ideal for the most demanding parts such as  
-swap, /tmp and /var/tmp.  
-  
-  
-  
-; __Outer__:  
-  
-tracks have on average even faster transfer characteristics  
-but like the inner tracks are at the end of the seek so statistically it  
-is equally slow to seek to as the inner tracks.  
-  
-  
-Large files such as libraries would benefit from a place here.  
-  
-  
-  
-  
-  
-  
-Hence seek time reduction can be achieved by positioning frequently  
-accessed tracks in the middle so that the average seek distance and  
-therefore the seek time is short. This can be done either by using  
-fdisk or cfdisk to make a partition  
-on the middle tracks or by first  
-making a file (using dd) equal to half the size of the entire disk  
-before creating the files that are frequently accessed, after which  
-the dummy file can be deleted. Both cases assume starting from an  
-empty disk.  
-  
-  
-The latter trick is suitable for news spools where the empty directory  
-structure can be placed in the middle before putting in the data files.  
-This also helps reducing fragmentation a little.  
-  
-  
-This little trick can be used both on ordinary drives as well as RAID  
-systems. In the latter case the calculation for centring the tracks  
-will be different, if possible. Consult the latest RAID manual.  
-  
-  
-The speed difference this makes depends on the drives, but a 50 percent  
-improvement is a typical value.  
-  
-  
-  
-  
-! Disk Speed Values  
-  
-  
-  
-  
-The same mechanical head disk assembly (HDA) is often available  
-with a number of interfaces (IDE, SCSI etc) and the mechanical  
-parameters are therefore often comparable. The mechanics is  
-today often the limiting factor but development is improving  
-things steadily. There are two main parameters, usually quoted  
-in milliseconds (ms):  
-  
-  
-  
-  
-  
-*Head movement - the speed at which the read-write head  
-is able to move from one track to the next, called access time.  
-If you do the mathematics and doubly integrate the seek  
-first across all possible starting tracks and  
-then across all possible target tracks you will find that  
-this is equivalent of a stroke across a third of all tracks.  
-  
-*  
-  
-*Rotational speed - which determines the time taken to  
-get to the right sector, called latency.  
-*  
-  
-  
-  
-After voice coils replaced stepper motors for the head movement  
-the improvements seem to have levelled off and more energy is  
-now spent (literally) at improving rotational speed. This has  
-the secondary benefit of also improving transfer rates.  
-  
-  
-Some typical values:  
-  
-  
-Drive type  
-Access time (ms) | Fast Typical Old  
----------------------------------------------  
-Track-to-track <1 2 8  
-Average seek 10 15 30  
-End-to-end 10 30 70  
-  
-  
-  
-  
-This shows that the very high end drives offer only marginally  
-better access times then the average drives but that the old  
-drives based on stepper motors are significantly worse.  
-  
-  
-  
-  
-  
-Rotational speed (RPM) | 3600 | 4500 | 4800 | 5400 | 7200 | 10000  
--------------------------------------------------------------------  
-Latency (ms) | 17 | 13 | 12.5 | 11.1 | 8.3 | 6.  
-  
-  
-  
-  
-As latency is the average time taken to reach a given sector, the  
-formula is quite simply  
-  
-  
-latency (ms) = 60000 / speed (RPM)  
-  
-  
-  
-  
-Clearly this too is an example of diminishing returns for the  
-efforts put into development. However, what really takes off  
-here is the power consumption, heat and noise.  
-  
-  
-  
-  
-  
-  
-  
-!!6.9 Yoke  
-  
-  
-  
-  
-  
-There is also a  
-Linux Yoke Driver  
-available in beta which  
-is intended to do hot-swappable transparent binding of  
-one Linux block device to another. This means that if you  
-bind two block devices together,  
-say /dev/hda and /dev/loop0,  
-writing to one device will mean also writing to the other  
-and reading from either will yield the same result.  
-  
-  
-  
-  
-  
-  
-  
-!!6.10 Stacking  
-  
-  
-  
-  
-  
-One of the advantages of a layered design of an operating system  
-is that you have the flexibility to put the pieces together  
-in a number of ways.  
-For instance you can cache a CD-ROM with cachefs that is  
-a volume striped over 2 drives. This in turn can be set up  
-translucently with a volume that is NFS mounted from another machine.  
-RAID can be stacked in several layers to offer very fast seek and  
-transfer in such a way that it will work if even 3 drives fail.  
-The choices are many, limited only by imagination and, probably  
-more importantly, money.  
-  
-  
-  
-  
-  
-  
-  
-!!6.11 Recommendations  
-  
-  
-  
-  
-  
-There is a near infinite number of combinations available but my  
-recommendation is to start off with a simple setup without any  
-fancy add-ons. Get a feel for what is needed, where the maximum  
-performance is required, if it is access time or transfer speed  
-that is the bottle neck, and so on. Then phase in each component  
-in turn. As you can stack quite freely you should be able to  
-retrofit most components in as time goes by with relatively few  
-difficulties.  
-  
-  
-RAID is usually a good idea but make sure you have a thorough  
-grasp of the technology and a solid back up system.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!7. Other Operating Systems  
-  
-  
-  
-  
-Many Linux users have several operating systems installed, often  
-necessitated by hardware setup systems that run under other operating  
-systems, typically DOS or some flavour of Windows. A small section on  
-how best to deal with this is therefore included here.  
-  
-  
-  
-  
-!!7.1 DOS  
-  
-  
-  
-  
-  
-Leaving aside the debate on weather or not DOS qualifies as an operating  
-system one can in general say that it has little sophistication with  
-respect to disk operations. The more important result of this is that there  
-can be severe difficulties in running various versions of DOS on large  
-drives, and you are therefore strongly recommended in reading the  
-''Large Drives mini-HOWTO''. One effect is that you are often better  
-off placing DOS on low track numbers.  
-  
-  
-Having been designed for small drives it has a rather unsophisticated  
-file system (fat) which when used on large drives will allocate  
-enormous block sizes. It is also prone to block fragmentation which  
-will after a while cause excessive seeks and slow effective transfers.  
-  
-  
-One solution to this is to use a defragmentation program regularly but  
-it is strongly recommended to back up data and verify the disk before  
-defragmenting. All versions of DOS have chkdsk that can do some  
-disk checking, newer versions also have scandisk which is somewhat  
-better. There are many defragmentation programs available, some versions  
-have one called defrag. Norton Utilities have a large suite of  
-disk tools and there are many others available too.  
-  
-  
-As always there are snags, and this particular snake in our drive  
-paradise is called ''hidden files''. Some vendors started to use  
-these for copy protection schemes and would not take kindly to being  
-moved to a different place on the drive, even if it remained in the  
-same place in the directory structure. The result of this was that  
-newer defragmentation programs will not touch any hidden file, which  
-in turn reduces the effect of defragmentation.  
-  
-  
-Being a single tasking, single threading and single most other things  
-operating system there is very little gains in using multiple drives  
-unless you use a drive controller with built in RAID support of some  
-kind.  
-  
-  
-There are a few utilities called join and subst which  
-can do some multiple drive configuration but there is very little  
-gains for a lot of work. Some of these commands have been removed in  
-newer versions.  
-  
-  
-In the end there is very little you can do, but not all hope is lost.  
-Many programs need fast, temporary storage, and the better behaved  
-ones will look for environment variables called TMPDIR or  
-TEMPDIR which you can set to point to another drive. This is  
-often best done in autoexec.bat.  
-  
-  
-  
-----  
-  
-SET TMPDIR=E:/TMP  
-SET TEMPDIR=E:/TEMP  
-  
-----  
-  
-  
-Not only will this possibly gain you some speed but also it can  
-reduce fragmentation.  
-  
-  
-There have been reports about difficulties in removing multiple primary  
-partitions using the fdisk program that comes with DOS. Should this  
-happen you can instead use a Linux rescue disk with Linux fdisk to  
-repair the system.  
-  
-  
-Don't forget there are other alternatives to DOS, the most well known  
-being  
-DR-DOS  
-from  
-Caldera.  
-This is a direct descendant from DR-DOS from Digital Research.  
-It offers many features not found in the more common DOS, such  
-as multi tasking and long filenames.  
-  
-  
-Another alternative which also is free is  
-Free DOS  
-which is a project under development. A number of free utilities  
-are also available.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!7.2 Windows  
-  
-  
-  
-  
-  
-Most of the above points are valid for Windows too, with the exception  
-of Windows95 which apparently has better disk handling, which will get  
-better performance out of SCSI drives.  
-  
-  
-A useful thing is the introduction of long filenames, to read these from  
-Linux you will need the vfat file system for mounting these partitions.  
-  
-  
-  
-  
-  
-Disk fragmentation is still a problem. Some of this can be avoided by  
-doing a defragmentation immediately before and immediately after installing  
-large programs or systems. I use this scheme at work and have found it  
-to work quite well. Purging unused files and emptying the waste basket first  
-can improve defragmentation further.  
-  
-  
-Windows also use swap drives, redirecting this to another drive can give  
-you some performance gains. There are several mini-HOWTOs telling you how  
-best to share swap space between various operating systems.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-The trick of setting TEMPDIR can still be used but not all  
-programs will honour this setting. Some do, though. To get a good  
-overview of the settings in the control files you can run sysedit  
-which will open a number of files for editing, one of which is the  
-autoexec file where you can add the TEMPDIR settings.  
-  
-  
-Much of the temporary files are located in the /windows/temp  
-directory and changing this is more tricky. To achieve this you can  
-use regedit which is rather powerful and quite capable of  
-rendering your system in a state you will not enjoy, or more  
-precisely, in a state much less enjoyable than windows in general.  
-Registry database error is a message that means seriously bad news.  
-Also you will see that many programs have their own private temporary  
-directories scattered around the system.  
-  
-  
-Setting the swap file to a separate partition is a better idea and much  
-less risky. Keep in mind that this partition cannot be used for anything  
-else, even if there should appear to be space left there.  
-  
-  
-It is now possible to read ext2fs partitions from Windows,  
-either by mounting the partition using  
-FSDEXT2  
-or by using a file explorer like tool called  
-Explore2fs.  
-  
-  
-  
-  
-  
-  
-  
-!!7.3 OS/2  
-  
-  
-  
-  
-  
-The only special note here is that you can get file system driver for  
-OS/2 that can read an ext2fs partition.  
-Matthieu Willm's ext2fs Installable File System for OS/2 can be found at  
-ftp-os2.nmsu.edu,  
-Sunsite,  
-ftp.leo.org and  
-ftp-os2.cdrom.com.  
-  
-  
-The IFS has read and write capabilities.  
-  
-  
-  
-  
-  
-  
-  
-!!7.4 NT  
-  
-  
-  
-  
-  
-  
-  
-This is a more serious system featuring most buzzwords known to marketing.  
-It is well worth noting that it features software striping and other more  
-sophisticated setups. Check out the drive manager in the control panel.  
-I do not have easy access to NT, more details on this can take a bit of time.  
-  
-  
-One important snag was recently reported by acahalan at cs.uml.edu :  
-(reformatted from a Usenet News posting)  
-  
-  
-NT !DiskManager has a serious bug that can corrupt your disk when you have  
-several (more than one?) extended partitions. Microsoft provides an  
-emergency fix program at their web site. See the  
-knowledge base  
-for more. (This affects Linux users, because Linux users have extra partitions)  
-  
-  
-You can now read ext2fs partitions from NT using  
-Explore2fs.  
-  
-  
-  
-  
-  
-  
-  
-!!7.5 Windows 2000  
-  
-  
-  
-  
-  
-Most points regarding Windows NT also applies to its descendant Windows 2000  
-though at the time of writing this I do not know if the aforementioned bugs  
-have been fixed or not.  
-  
-  
-While Windows 2000, like its predecessor, features RAID, at least one  
-company,  
-RAID Toolbox,  
-has found the bundled RAID somewhat lacking and made their own commercial  
-alternative.  
-  
-  
-  
-  
-  
-  
-  
-!!7.6 Sun OS  
-  
-  
-  
-  
-  
-There is a little bit of confusion in this area between Sun OS vs. Solaris.  
-Strictly speaking Solaris is just Sun OS 5.x packaged with Openwindows and  
-a few other things. If you run Solaris, just type uname -a to see your  
-version. Parts of the reason for this confusion is that Sun Microsystems  
-used to use an OS from the BSD family, albeight with a few bits and pieces  
-from elsewhere as well as things made by themselves. This was the situation  
-up to Sun OS 4.x.y when they did a "strategic roadmap decision" and decided  
-to switch over to the official Unix, System V, Release 4 (aka SVR5),  
-and Sun OS 5 was created.  
-This made a lot of people unhappy. Also this was bundled with other things  
-and marketed under the name Solaris, which currently stands at release  
-7 which just recently replaced version 2.6 as the latest and greatest.  
-In spite of the large jump in version number this is actually a minor  
-technical upgrade but a giant leap for marketing.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Sun OS 4  
-  
-  
-  
-  
-This is quite familiar to most Linux users.  
-The last release is 4.1.4 plus various patches.  
-Note however that the file system  
-structure is quite different and does not conform to FSSTND so any planning  
-must be based on the traditional structure. You can get some information by  
-the man page on this: man hier. This is, like most man pages, rather brief  
-but should give you a good start. If you are still confused by the structure  
-it will at least be at a higher level.  
-  
-  
-  
-  
-!Sun OS 5 (aka Solaris)  
-  
-  
-  
-  
-  
-This comes with a snazzy installation system that runs under Openwindows, it  
-will help you in partitioning and formatting the drives before installing the  
-system from CD-ROM. It will also fail if your drive setup is too far out, and  
-as it takes a complete installation run from a full CD-ROM in a 1x only drive  
-this failure will dawn on you after too long time. That is the experience we  
-had where I used to work. Instead we installed everything onto one drive and then  
-moved directories across.  
-  
-  
-The default settings are sensible for most things, yet there remains a little  
-oddity: swap drives. Even though the official manual recommends multiple swap  
-drives (which are used in a similar fashion as on Linux) the default is to use  
-only a single drive. It is recommended to change this as soon as possible.  
-  
-  
-Sun OS 5 offers also a file system especially designed for temporary files,  
-tmpfs. It offers significant speed improvements over ufs but does  
-not survive rebooting.  
-  
-  
-  
-  
-  
-The only comment so far is: beware! Under Solaris 2.0 it seem that  
-creating too big files in /tmp can cause an out of swap space  
-kernel panic trap. As the evidence of what has happened is as lost as  
-any data on a RAMdisk after powering down it can be hard to find out  
-what has happened. What is worse, it seems that user space processes  
-can cause this kernel panic and unless this problem is taken care of  
-it is best not to use tmpfs in potentially hostile environments.  
-  
-  
-Also see the notes on  
-tmpfs.  
-  
-  
-Trivia: There is a movie also called Solaris, a science fiction movie that is  
-very, very long, slow and incomprehensible. This was often pointed out at the  
-time Solaris (the OS) appeared...  
-  
-  
-  
-  
-  
-  
-  
-!!7.7 BeOS  
-  
-  
-  
-  
-  
-This operating system is one of the more recent one to arrive  
-and it features a file system that has some database like features.  
-  
-  
-There is a BFS file system driver being developed for Linux  
-and is available in alpha stage. For more information check the  
-Linux BFS page  
-where patches also are available.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!8. Clusters  
-  
-  
-  
-  
-In this section I will briefly touch on the ways machines can be connected  
-together but this is so big a topic it could be a separate HOWTO in its  
-own right, hint, hint. Also, strictly speaking, this section lies outside  
-the scope of this HOWTO, so if you feel like getting fame etc. ''you'' could  
-contact me and take over this part and turn it into a new document.  
-  
-  
-These days computers gets outdated at an incredible rate. There is however  
-no reason why old hardware could not be put to good use with Linux. Using  
-an old and otherwise outdated computer as a network server can be both  
-useful in its own right as well as a valuable educational exercise. Such  
-a local networked cluster of computers can take on many forms but to remain  
-within the charter of this HOWTO I will limit myself to the disk strategies.  
-Nevertheless I would hope someone else could take on this topic and turn it  
-into a document on its own.  
-  
-  
-This is an exciting area of activity today, and many forms of clustering  
-is available today, ranging from automatic workload balancing over local  
-network to more exotic hardware such as Scalable Coherent Interface (SCI)  
-which gives a tight integration of machines, effectively turning them into  
-a single machine. Various kinds of clustering has been available for larger  
-machines for some time and the VAXcluster is perhaps a well known example  
-of this. Clustering is done usually in order to share resources such as  
-disk drives, printers and terminals etc, but also processing resources equally  
-transparently between the computational nodes.  
-  
-  
-There is no universal definition of clustering, in here it is taken to mean  
-a network of machines that combine their resources to serve users. Admittedly  
-this is a rather loose definition but this will change later.  
-  
-  
-These days also Linux offers some clustering features but for a starter  
-I will just describe a simple local network. It is a good way of putting old  
-and otherwise unusable hardware to good use, as long as they can run Linux or  
-something similar.  
-  
-  
-One of the best ways of using an old machine is as a network server in which  
-case the effective speed is more likely to be limited by network bandwidth  
-rather than pure computational performance. For home use you can move the  
-following functionality off to an older machine used as a server:  
-  
-  
-*news  
-*  
-  
-*mail  
-*  
-  
-*web proxy  
-*  
-  
-*printer server  
-*  
-  
-*modem server (PPP, SLIP, FAX, Voice mail)  
-*  
-  
-  
-  
-You can also NFS mount drives from the server onto your workstation  
-thereby reducing drive space requirements. Still read the FSSTND to see  
-what directories should ''not'' be exported. The best candidates for  
-exporting to all machines are /usr and /var/spool  
-and possibly /usr/local but probably not /var/spool/lpd.  
-  
-  
-Most of the time even slow disks will deliver sufficient performance. On  
-the other hand, if you do processing directly on the disks on the server or  
-have very fast networking, you might want to rethink your strategy and use  
-faster drives. Searching features on a web server or news database searches  
-are two examples of this.  
-  
-  
-Such a network can be an excellent way of learning system administration  
-and building up your own toaster network, as it often is called. You can  
-get more information on this in other HOWTOs but there are two important  
-things you should keep in mind:  
-  
-  
-*Do not pull IP numbers out of thin air. Configure your inside net  
-using IP numbers reserved for private use, and use your network server  
-as a router that handles this IP masquerading.  
-*  
-  
-*Remember that if you additionally configure the router as a firewall  
-you might not be able to get to your own data from the outside, depending  
-on the firewall configuration.  
-*  
-  
-  
-  
-The ''Nyx'' network provides an example of a cluster in the sense defined here.  
-It consists of the following machines:  
-  
-; __nyx__:  
-  
-is one of the two user login machines and also provides some  
-of the networking services.  
-; __nox__:  
-  
-(aka nyx10) is the main user login machine and is also the  
-mail server.  
-; __noc__:  
-  
-is a dedicated news server. The news spool is made accessible  
-through NFS mounting to nyx and nox.  
-; __arachne__:  
-  
-(aka www) is the web server. Web pages are written by  
-NFS mounting onto nox.  
-  
-  
-  
-There are also some more advanced clustering projects going, notably  
-  
-  
-*  
-The Beowulf Project  
-  
-*  
-  
-*  
-The Genoa Active Message Machine (GAMMA)  
-  
-*  
-  
-  
-  
-  
-  
-  
-High-tech clustering requires high-tech interconnect, and SCI is one of them.  
-To find out more you can either look up the home page of  
-Dolphin Interconnect Solutions  
-which is one of the main actors in this field,  
-or you can have a look at  
-scizzl.  
-  
-  
-  
-  
-  
-Centralised mail servers using IMAP are becoming more and more popular  
-as disks become large enough to keep all mail stored indefinitely  
-and also cheap enough to make it a feasible option.  
-Unfortunately it has become clear that NFS mounting the mail  
-archives from another machine can cause corruption of the IMAP  
-database as the server software does not handle NFS timeouts too well,  
-and NFS timeouts are a rather common occurrence.  
-Keep therefore the mail archive local to the IMAP server.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!9. Mount Points  
-  
-  
-  
-  
-In designing the disk layout it is important not to split off the  
-directory tree structure at the wrong points, hence this section.  
-As it is highly dependent on the FSSTND it has been put aside in  
-a separate section, and will most likely have to be totally rewritten  
-when FHS is adopted in a Linux distribution.  
-In the meanwhile this will do.  
-  
-  
-Remember that this is a list of where a separation ''can'' take place,  
-not where it ''has'' to be. As always, good judgement is always required.  
-  
-  
-Again only a rough indication can be given here. The values indicate  
-  
-  
-  
-  
-  
-=don't separate here  
-1=not recommended  
-...  
-4=useful  
-5=recommended  
-  
-  
-  
-  
-In order to keep the list short, the uninteresting parts are removed.  
-  
-  
-  
-  
-  
-Directory Suitability  
-/  
-|  
-+-bin  
-+-boot 5  
-+-dev  
-+-etc  
-+-home 5  
-+-lib  
-+-mnt  
-+-proc  
-+-root  
-+-sbin  
-+-tmp 5  
-+-usr 5  
-| \  
-| +-X11R6 3  
-| +-bin 3  
-| +-lib 4  
-| +-local 4  
-| | \  
-| | +bin 2  
-| | +lib 4  
-| +-src 3  
-|  
-+-var 5  
-\  
-+-adm  
-+-lib 2  
-+-lock 1  
-+-log  
-+-preserve 1  
-+-run 1  
-+-spool 4  
-| \  
-| +-mail 3  
-| +-mqueue 3  
-| +-news 5  
-| +-smail 3  
-| +-uucp 3  
-+-tmp 5  
-  
-  
-  
-  
-There is of course plenty of adjustments possible, for instance a home user  
-would not bother with splitting off the /var/spool hierarchy but  
-a serious ISP should. The key here is ''usage''.  
-  
-  
-''QUIZ!'' Why should /etc never be on a separate partition?  
-Answer: Mounting instructions during boot is found in the file  
-/etc/fstab so if this is on a separate and unmounted partition  
-it is like the key to a locked drawer is inside that drawer, a hopeless  
-situation. (Yes, I'll do nearly anything to liven up this HOWTO.)  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!10. Considerations and Dimensioning  
-  
-  
-  
-  
-The starting point in this will be to consider where you are and what  
-you want to do. The typical home system starts out with existing  
-hardware and the newly converted Linux user will want to get the most  
-out of existing hardware. Someone setting up a new system for a  
-specific purpose (such as an Internet provider) will instead have to  
-consider what the goal is and buy accordingly. Being ambitious I will  
-try to cover the entire range.  
-  
-  
-Various purposes will also have different requirements regarding file  
-system placement on the drives, a large multiuser machine would  
-probably be best off with the /home directory on a  
-separate disk, just to give an example.  
-  
-  
-In general, for performance it is advantageous to split most things  
-over as many disks as possible but there is a limited number of  
-devices that can live on a SCSI bus and cost is naturally also a  
-factor. Equally important, file system maintenance becomes more  
-complicated as the number of partitions and physical drives increases.  
-  
-  
-  
-  
-!!10.1 Home Systems  
-  
-  
-  
-  
-  
-With the cheap hardware available today it is possible to have  
-quite a big system at home that is still cheap, systems that  
-rival major servers of yesteryear. While many started out with  
-old, discarded disks to build a Linux server (which is how this  
-HOWTO came into existence), many can now afford to buy 40 GB  
-disks up front.  
-  
-  
-Size remains important for some, and here are a few guidelines:  
-  
-  
-  
-  
-; __Testing__:  
-  
-Linux is simple and you don't even need a hard disk to  
-try it out, if you can get the boot floppies to work you are likely to  
-get it to work on your hardware. If the standard kernel does not work  
-for you, do not forget that often there can be special boot disk versions  
-available for unusual hardware combinations that can solve your initial  
-problems until you can compile your own kernel.  
-  
-  
-  
-; __Learning__:  
-  
-about operating system is something Linux excels in,  
-there is plenty of documentation and the source is available. A single  
-drive with 50 MB is enough to get you started with a shell, a few of  
-the most frequently used commands and utilities.  
-  
-  
-  
-; __Hobby__:  
-  
-use or more serious learning requires more commands and  
-utilities but a single drive is still all it takes, 500 MB should give  
-you plenty of room, also for sources and documentation.  
-  
-  
-  
-; __Serious__:  
-  
-software development or just serious hobby work requires  
-even more space. At this stage you have probably a mail and news feed  
-that requires spool files and plenty of space. Separate drives for  
-various tasks will begin to show a benefit. At this stage you have  
-probably already gotten hold of a few drives too. Drive requirements  
-gets harder to estimate but I would expect 2-4 GB to be plenty, even  
-for a small server.  
-  
-  
-  
-; __Servers__:  
-  
-come in many flavours, ranging from mail servers to full  
-sized ISP servers. A base of 2 GB for the main system should be  
-sufficient, then add space and perhaps also drives for separate  
-features you will offer. Cost is the main limiting factor here  
-but be prepared to spend a bit if you wish to justify the "S"  
-in ISP. Admittedly, not all do it.  
-  
-  
-Basically a server is dimensioned like any machine for serious use  
-with added space for the services offered, and tends to be IO bound  
-rather than CPU bound.  
-  
-  
-With cheap networking technology both for land lines as well as  
-through radio nets, it is quite likely that very soon home users  
-will have their own servers more or less permanently hooked onto  
-the net.  
-  
-  
-  
-  
-  
-  
-  
-  
-!!10.2 Servers  
-  
-  
-  
-  
-  
-Big tasks require big drives and a separate section here. If possible  
-keep as much as possible on separate drives. Some of the appendices  
-detail the setup of a small departmental server for 10-100  
-users. Here I will present a few consideration for the higher end  
-servers. In general you should not be afraid of using RAID, not only  
-because it is fast and safe but also because it can make growth a  
-little less painful. All the notes below come as additions to the  
-points mentioned earlier.  
-  
-  
-Popular servers rarely just happens, rather they grow over time and this  
-demands both generous amounts of disk space as well as a good net  
-connection. In many of these cases it might be a good idea to reserve  
-entire SCSI drives, in singles or as arrays, for each task. This way you  
-can move the data should the computer fail. Note that transferring drives  
-across computers is not simple and might not always work, especially in the  
-case of IDE drives. Drive arrays require careful setup in order to  
-reconstruct the data correctly, so you might want to keep a paper copy of  
-your fstab file as well as a note of SCSI IDs.  
-  
-  
-  
-  
-! Home Directories  
-  
-  
-  
-  
-Estimate how many drives you will need, if this is more than 2 I would  
-recommend RAID, strongly. If not you should separate users across your  
-drives dedicated to users based on some kind of simple hashing algorithm.  
-For instance you could use the first 2 letters in the user name, so  
-jbloggs is put on /u/j/b/jbloggs where /u/j  
-is a symbolic link to a  
-physical drive so you can get a balanced load on your drives.  
-  
-  
-  
-  
-!Anonymous FTP  
-  
-  
-  
-  
-  
-This is an essential service if you are serious about service. Good  
-servers are well maintained, documented, kept up to date, and  
-immensely popular no matter where in the world they are located. The  
-big server  
-ftp.funet.fi  
-is an excellent example of this.  
-  
-  
-In general this is not a question of CPU but of network bandwidth. Size  
-is hard to estimate, mainly it is a question of ambition and service  
-attitudes. I believe the big archive at  
-ftp.cdrom.com  
-is a *BSD machine  
-with 50 GB disk. Also memory is important for a dedicated FTP server,  
-about 256 MB RAM would be sufficient for a very big server, whereas  
-smaller servers can get the job done well with 64 MB RAM.  
-Network connections would still be the most important factor.  
-  
-  
-  
-  
-  
-  
-  
-! WWW  
-  
-  
-  
-  
-  
-For many this is the main reason to get onto the Internet, in fact many  
-now seem to equate the two. In addition to being network intensive  
-there is also a fair bit of drive activity related to this, mainly  
-regarding the caches. Keeping the cache on a separate, fast drive  
-would be beneficial. Even better would be installing a caching proxy  
-server. This way you can reduce the cache size for each user and speed  
-up the service while at the same time cut down on the bandwidth  
-requirements.  
-  
-  
-With a caching proxy server you need a fast set of drives, RAID0 would  
-be ideal as reliability is not important here. Higher capacity is  
-better but about 2 GB should be sufficient for most. Remember to match  
-the cache period to the capacity and demand. Too long periods would on  
-the other hand be a disadvantage, if possible try to adjust based on  
-the URL. For more information check up on the most used servers such as  
-Harvest,  
-Squid  
-and the one from  
-Netscape.  
-  
-  
-  
-  
-  
-  
-  
-!Mail  
-  
-  
-  
-  
-Handling mail is something most machines do to some extent. The big mail  
-servers, however, come into a class of their own. This is a demanding task  
-and a big server can be slow even when connected to fast drives and a good  
-net feed. In the Linux world the big server at vger.rutgers.edu is a  
-well known example. Unlike a news service which is distributed and which  
-can partially reconstruct the spool using other machines as a feed, the  
-mail servers are centralised. This makes safety much more important, so for  
-a major server you should consider a RAID solution with emphasize on  
-reliability. Size is hard to estimate, it all depends on how many lists you  
-run as well as how many subscribers you have.  
-  
-  
-Big mail servers can be IO limited in performance and for this  
-reason some use huge silicon disks connected to the SCSI bus to hold  
-all mail related files including temporary files.  
-For extra safety these are battery backed and filesystems  
-like udf are preferred since they always flush metadata to disk.  
-This added cost to performance is offset by the very fast disk.  
-  
-  
-Note that these days more and more switch over from using POP to  
-pull mail to local machine from mail server and instead use IMAP to  
-serve mail while keeping the mail archive centralised.  
-This means that mail is no longer spooled in its original sense but  
-often builds up, requiring huge disk space. Also more and more (ab)use  
-mail attachments to send all sorts of things across, even a small  
-word processor document can easily end up over 1 MB. Size your disks  
-generously and keep an eye on how much space is left.  
-  
-  
-  
-  
-  
-  
-  
-!News  
-  
-  
-  
-  
-This is definitely a high volume task, and very dependent on what  
-news groups you subscribe to. On Nyx there is a fairly complete feed  
-and the spool files consume about 17 GB. The biggest groups are no doubt  
-in the alt.binary.* hierarchy, so if you for some reason decide not to  
-get these you can get a good service with perhaps 12 GB. Still others,  
-that shall remain nameless, feel 2 GB is sufficient to claim ISP status.  
-In this case news expires so fast I feel the spelling IsP is barely  
-justified. A full newsfeed means a traffic of a few GB every day and this  
-is an ever growing number.  
-  
-  
-  
-  
-  
-  
-  
-!Others  
-  
-  
-  
-  
-There are many services available on the net and even though many have been  
-put somewhat in the shadows by the web. Nevertheless, services like  
-''archie'', ''gopher'' and ''wais'' just to name a few, still exist and  
-remain valuable tools on the net. If you are serious about starting a major  
-server you should also consider these services. Determining the required  
-volumes is hard, it all depends on popularity and demand. Providing good  
-service inevitably has its costs, disk space is just one of them.  
-  
-  
-  
-  
-  
-  
-  
-!Server Recommendations  
-  
-  
-  
-  
-Servers today require large numbers of large disks to function  
-satisfactorily in commercial settings. As mean time between failure  
-(MTBF) decreases rapidly as the number of components increase it is  
-advisable to look into using RAID for protection and use a number of  
-medium sized drives rather than one single huge disk. Also look into  
-the High Availability (HA) project for more information.  
-More information is available at  
-  
-  
-  
-High Availability HOWTO  
-and also at related  
-web pages.  
-  
-  
-There is also an article in Byte called  
-How Big Does Your Unix Server Have To Be?  
-with many points that are relevant to Linux.  
-  
-  
-  
-  
-  
-  
-  
-!! 10.3 Pitfalls  
-  
-  
-  
-  
-  
-The dangers of splitting up everything into separate partitions are  
-briefly mentioned in the section about volume management. Still, several  
-people have asked me to emphasize this point more strongly: when one  
-partition fills up it cannot grow any further, no matter if there is  
-plenty of space in other partitions.  
-  
-  
-In particular look out for explosive growth in the news spool  
-(/var/spool/news). For multi user machines with quotas keep  
-an eye on /tmp and /var/tmp as some people try to hide their  
-files there, just look out for filenames ending in gif or jpeg...  
-  
-  
-In fact, for single physical drives this scheme offers very little gains  
-at all, other than making file growth monitoring easier  
-(using 'df') and physical track positioning. Most importantly  
-there is no scope for parallel disk access. A freely available volume  
-management system would solve this but this is still some time in the  
-future. However, when more specialised file systems become available  
-even a single disk could benefit from being divided into several  
-partitions.  
-  
-  
-For more information see section  
-Troubleshooting.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 11. Disk Layout  
-  
-  
-  
-  
-  
-With all this in mind we are now ready to embark on the layout. I  
-have based this on my own method developed when I got hold of 3 old  
-SCSI disks and boggled over the possibilities.  
-  
-  
-The tables in the appendices are designed to simplify the mapping process. They  
-have been designed to help you go through the process of optimizations as well  
-as making an useful log in case of system repair. A few examples are also given.  
-  
-  
-  
-  
-  
-  
-  
-!!11.1 Selection for Partitioning  
-  
-  
-  
-  
-  
-Determine your needs and set up a list of all the parts of the file system  
-you want to be on separate partitions and sort them in descending order of  
-speed requirement and how much space you want to give each partition.  
-  
-  
-The table in  
-Appendix A section  
-is a useful tool to select what directories you  
-should put on different partitions. It is sorted in a logical order  
-with space for your own additions and notes about mounting points and  
-additional systems. It is therefore NOT sorted in order of speed, instead  
-the speed requirements are indicated by bullets ('o').  
-  
-  
-If you plan to RAID make a note of the disks you want to use and what  
-partitions you want to RAID. Remember various RAID solutions offers  
-different speeds and degrees of reliability.  
-  
-  
-(Just to make it simple I'll assume we have a set of identical SCSI disks  
-and no RAID)  
-  
-  
-  
-  
-  
-  
-  
-!!11.2 Mapping Partitions to Drives  
-  
-  
-  
-  
-  
-  
-Then we want to place the partitions onto physical disks. The point of the  
-following algorithm is to maximise parallelizing and bus capacity. In this  
-example the drives are A, B and C and the partitions are 987654321 where 9  
-is the partition with the highest speed requirement. Starting at one drive  
-we 'meander' the partition line over and over the drives in this way:  
-  
-  
-  
-  
-  
-A : 9 4 3  
-B : 8 5 2  
-C : 7 6 1  
-  
-  
-  
-  
-This makes the 'sum of speed requirements' the most equal across each  
-drive.  
-  
-  
-Use the table in  
-Appendix B section  
-to select what drives to use for each partition in order to optimize for paralellicity.  
-  
-  
-Note the speed characteristics of your drives and note each directory under  
-the appropriate column. Be prepared to shuffle directories, partitions  
-and drives around a few times before you are satisfied.  
-  
-  
-  
-  
-!!11.3 Sorting Partitions on Drives  
-  
-  
-  
-  
-  
-  
-After that it is recommended to select partition numbering for each drive.  
-  
-  
-Use the table in  
-Appendix C section  
-to select partition numbers in order to optimize for track characteristics.  
-At the end of this you should have a table sorted in ascending partition  
-number. Fill these numbers back into the tables in appendix A and B.  
-  
-  
-You will find these tables useful  
-when running the partitioning program (fdisk or  
-cfdisk) and when doing the installation.  
-  
-  
-  
-  
-  
-  
-  
-!!11.4 Optimizing  
-  
-  
-  
-  
-  
-  
-After this there are usually a few partitions that have to be 'shuffled' over  
-the drives either to make them fit or if there are special considerations  
-regarding speed, reliability, special file systems etc. Nevertheless this  
-gives what this author believes is a good starting point for the complete  
-setup of the drives and the partitions. In the end it is actual use that will  
-determine the real needs after we have made so many assumptions. After  
-commencing operations one should assume a time comes when a repartitioning  
-will be beneficial.  
-  
-  
-For instance if one of the 3 drives in the above mentioned example is  
-very slow compared to the two others a better plan would be as  
-follows:  
-  
-  
-  
-  
-  
-A : 9 6 5  
-B : 8 7 4  
-C : 3 2 1  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Optimizing by Characteristics  
-  
-  
-  
-  
-  
-Often drives can be similar in apparent overall speed but some  
-advantage can be gained by matching drives to the file size  
-distribution and frequency of access. Thus binaries are suited  
-to drives with fast access that offer command queueing, and  
-libraries are better suited to drives with larger transfer speeds  
-where IDE offers good performance for the money.  
-  
-  
-  
-  
-  
-  
-  
-! Optimizing by Drive Parallelising  
-  
-  
-  
-  
-  
-Avoid drive contention by looking at tasks: for instance if you are  
-accessing /usr/local/bin chances are you will soon also need files  
-from /usr/local/lib so placing these at separate drives allows less  
-seeking and possible parallel operation and drive caching. It is  
-quite possible that choosing what may appear less than ideal drive  
-characteristics will still be advantageous if you can gain parallel  
-operations. Identify common tasks, what partitions they use and try  
-to keep these on separate physical drives.  
-  
-  
-Just to illustrate my point I will give a few examples of  
-task analysis here.  
-  
-  
-  
-  
-  
-  
-  
-; __Office software__:  
-  
-such as editing, word processing and  
-spreadsheets are typical examples of low intensity software both in  
-terms of CPU and disk intensity. However, should you have a single  
-server for a huge number of users you should not forget that most such  
-software have auto save facilities which cause extra traffic, usually  
-on the home directories. Splitting users over several drives would  
-reduce contention.  
-  
-  
-  
-; __News__:  
-  
-readers also feature auto save features on home directories  
-so ISPs should consider separating home directories  
-  
-  
-News spools are notorious for their deeply nested directories and  
-their large number of very small files. Loss of a news spool  
-partition is not a big problem for most people, too, so they are good  
-candidates for a RAID 0 setup with many small disks to distribute  
-the many seeks among multiple spindles. It is recommended in the  
-manuals and FAQs for the INN news server to put news spool  
-and .overview files on separate drives for larger installations.  
-  
-  
-  
-  
-  
-Some notes on  
-INN optimising under Tru64 UNIX  
-also applies to a wider audience, including Linux users.  
-  
-  
-  
-; __Database__:  
-  
-applications can be demanding both in terms of drive  
-usage and speed requirements. The details are naturally application  
-specific, read the documentation carefully with disk requirements in  
-mind. Also consider RAID both for performance and reliability.  
-  
-  
-  
-; __E-mail__:  
-  
-reading and sending involves home directories as well as  
-in- and outgoing spool files. If possible keep home directories and  
-spool files on separate drives. If you are a mail server or a mail hub  
-consider putting in- and outgoing spool directories on separate  
-drives.  
-  
-  
-Losing mail is an extremely bad thing, if you are managing an ISP or major  
-hub. Think about RAIDing your mail spool and consider frequent  
-backups.  
-  
-  
-  
-; __Software development__:  
-  
-can require a large number of directories  
-for binaries, libraries, include files as well as source and project  
-files. If possible split as much as possible across separate  
-drives. On small systems you can place /usr/src and project files on  
-the same drive as the home directories.  
-  
-  
-  
-; __Web browsing__:  
-  
-is becoming more and more popular. Many browsers  
-have a local cache which can expand to rather large volumes. As this  
-is used when reloading pages or returning to the previous page, speed  
-is quite important here. If however you are connected via a well configured  
-proxy server you do not need more than typically a few megabytes per  
-user for a session.  
-See also the sections on  
-Home Directories  
-and  
-WWW.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!11.5 Compromises  
-  
-  
-  
-  
-  
-One way to avoid the aforementioned  
-pitfalls  
-is to only set off fixed  
-partitions to directories with a fairly well known size such as swap,  
-/tmp and /var/tmp and group together the remainders  
-into the remaining partitions using symbolic links.  
-  
-  
-Example: a slow disk (slowdisk),  
-a fast disk (fastdisk) and an  
-assortment of files. Having set up swap and tmp on fastdisk;  
-and /home and root on slowdisk we have (the fictitious) directories  
-/a/slow, /a/fast, /b/slow and /b/fast  
-left to allocate on the partitions  
-/mnt.slowdisk and /mnt.fastdisk which represents the  
-remaining partitions of the two drives.  
-  
-  
-Putting /a or /b directly on either drive gives the same  
-properties to the subdirectories. We could make all 4 directories  
-separate partitions but would lose some flexibility in managing  
-the size of each directory. A better solution is to make  
-these 4 directories symbolic links to appropriate directories on  
-the respective drives.  
-  
-  
-Thus we make  
-  
-  
-  
-  
-  
-/a/fast point to /mnt.fastdisk/a/fast or /mnt.fastdisk/a.fast  
-/a/slow point to /mnt.slowdisk/a/slow or /mnt.slowdisk/a.slow  
-/b/fast point to /mnt.fastdisk/b/fast or /mnt.fastdisk/b.fast  
-/b/slow point to /mnt.slowdisk/b/slow or /mnt.slowdisk/b.slow  
-  
-  
-  
-  
-and we get all fast directories on the fast drive without having to  
-set up a partition for all 4 directories. The second (right hand)  
-alternative gives us a flatter files system which in this case can  
-make it simpler to keep an overview of the structure.  
-  
-  
-The disadvantage is that it is a complicated scheme to set up and plan  
-in the first place and that all mount points and partitions have to be  
-defined before the system installation.  
-  
-  
-''Important:'' note that the /usr partition must be mounted  
-directly onto root and not via an indirect link as described above.  
-The reason for this are the long backward links used extensively in  
-X11 that go from deep within /usr all the way to root and then  
-down into /etc directories.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!12. Implementation  
-  
-  
-  
-  
-Having done the layout you should now have a detailed description on  
-what goes where. Most likely this will be on paper but hopefully  
-someone will make a more automated system that can deal with  
-everything from the design, through partitioning to formatting and  
-installation. This is the route one will have to take to realise the  
-design.  
-  
-  
-Modern distributions come with installation tools that will guide you  
-through partitioning and formatting and also set up /etc/fstab  
-for you automatically. For later modifications, however, you will need  
-to understand the underlying mechanisms.  
-  
-  
-  
-  
-  
-  
-  
-!!12.1 Checklist  
-  
-  
-  
-  
-  
-Before starting make sure you have the following:  
-  
-  
-*Written notes of what goes where, your design  
-*  
-  
-*A functioning, tested rescue disk  
-*  
-  
-*A fresh backup of your precious data  
-*  
-  
-*At least two formatted, tested and empty floppies  
-*  
-  
-*Read and understood the man page for fdisk or equivalent  
-*  
-  
-*Patience, concentration and elbow grease  
-*  
-  
-  
-  
-  
-  
-  
-  
-  
-!!12.2 Drives and Partitions  
-  
-  
-  
-  
-  
-  
-When you start DOS or the like you will find all partitions labeled  
-C: and onwards, with no differentiation on IDE, SCSI, network or  
-whatever type of media you have. In the world of Linux this is rather  
-different. During booting you will see partitions described like this:  
-----  
-  
-Dec 6 23:45:18 demos kernel: Partition check:  
-Dec 6 23:45:18 demos kernel: sda: sda1  
-Dec 6 23:45:18 demos kernel: hda: hda1 hda2  
-  
-----  
-  
-  
-SCSI drives are labelled sda, sdb, sdc etc, and  
-(E)IDE drives are labelled hda, hdb, hdc etc.  
-There are also standard names for all devices, full information can be  
-found in  
-/dev/MAKEDEV and /usr/src/linux/Documentation/devices.txt.  
-  
-  
-Partitions are labelled numerically for each drive hda1, hda2  
-and so on. On SCSI drives there can be 15 partitions per  
-drive, on EIDE drives there can be 63 partitions per drive. Both  
-limits exceed what is currently useful for most disks.  
-  
-  
-These are then mounted according to the file /etc/fstab before  
-they appear as a part of the file system.  
-  
-  
-  
-  
-  
-  
-  
-!!12.3 Partitioning  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-''It feels so good / It's a marginal risk / when I clear off / windows with fdisk! ''  
-(the Dustbunny in an  
-issue  
-of  
-User Friendly  
-in the song "Refund this")  
-  
-  
-First you have to partition each drive into a number of separate partitions.  
-Under Linux there are two main methods, fdisk and the more screen  
-oriented cfdisk. These are complex programs, read the manual ''very''  
-carefully. For the experts there is now also sfdisk.  
-  
-  
-  
-  
-  
-Partitions come in 3 flavours, primary, extended and logical.  
-You have to use primary partitions for booting, but there is a maximum  
-of 4 primary partitions. If you want more you have to define an extended  
-partition within which you define your logical partitions.  
-  
-  
-Each partition has an identifier number which tells the operating system  
-what it is, for Linux the types swap(82) and ext2fs(83) are  
-the ones you  
-will need to know.  
-If you want to use RAID with autostart you have to check the documentation  
-for the appropriate type number for the RAID partition.  
-  
-  
-There is a readme file that comes with fdisk that gives more in-depth  
-information on partitioning.  
-  
-  
-Someone has just made a ''Partitioning HOWTO'' which contains excellent,  
-in depth information on the nitty-gritty of partitioning. Rather than  
-repeating it here and bloating this document further, I will instead refer  
-you to it instead.  
-  
-  
-Redhat has written a screen oriented utility called ''Disk Druid'' which  
-is supposed to be a user friendly alternative  
-to fdisk and cfdisk and also  
-automates a few other things. Unfortunately this product is not quite  
-mature so if you use it and cannot get it to work you are well advised  
-to try fdisk or cfdisk.  
-  
-  
-Not to be outdone, Mandrakesoft has made an even more graphic alternative  
-called  
-Diskdrake  
-that also offers numerous features.  
-  
-  
-Also the GNU project offers a partitioning tool called  
-GNU Parted  
-  
-  
-  
-  
-The  
-Ranish Partition Manager  
-is another free alternative,  
-while  
-Partition Magic  
-is a popular commercial alternative which also offers some  
-support for resizing ext2fs partitions.  
-  
-  
-Note that Windows will complain if it finds  
-more than one primary partition on a drive.  
-Also it appears to assign drive letters  
-to primary partitions as it finds disks  
-before starting over from the first disk to  
-assign subsequent drive names to logical partitions.  
-  
-  
-If you want DOS/Windows on your system you should make that partition  
-first, a primary one to boot to, made with the DOS fdisk program.  
-Then if you want NT you put that one in.  
-Finally, for Linux, you create those partitions with the Linux fdisk  
-program or equivalents. Linux is flexible enough to boot from both  
-primary as well as logical partitions.  
-  
-  
-In depth information on DOS fdisk can be found at  
-Fdisk.com  
-and  
-MS-DOS 5.00 - 7.10 Undocumented, Secret + Hidden Features  
-which details even more bugs and pitfalls.  
-  
-  
-  
-  
-!! 12.4 Repartitioning  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-Sometimes it is necessary to change the sizes of existing partitions  
-while keeping the contents intact. One way is of course to back up  
-everything, recreate new partitions and then restore the old contents,  
-and while this gives your back up system a good test it is also  
-rather time consuming.  
-  
-  
-Partition resizing is a simpler alternative where a file system is  
-first shrunk to desired volume and then the partition table is  
-updated to reflect the new end of partition position. This process  
-is therefore very file system sensitive.  
-  
-  
-Repartitioning requires there to be free space at the end of  
-the file space so to ensure you are able to shrink the size  
-you should first defragment your drive and empty any wastebaskets.  
-  
-  
-Using  
-fips  
-you can resize a fat partition,  
-and the latest version 1.6 of fips or fips 2.  
-are also able to resize fat32 partition.  
-Note that these programs actually run under DOS.  
-  
-  
-Resizing other file systems are much more complicated but one  
-popular commercial system  
-Partition Magic  
-is able to resize more file system types, including ext2fs  
-using the resize2fs program. Make sure you get the latest  
-updates to this program as recent versions had problems with  
-large disks.  
-  
-  
-  
-  
-  
-In order to get the most out of fips you should  
-first delete unnecessary files, empty wastebaskets etc.  
-before defragmenting your drive.  
-This way you can allocate more space to other partitions.  
-If the program complains there are still files at the end  
-of your drive it is probably hidden files generated by  
-Microsoft Mirror or Norton Image.  
-These are probably called image.idx and image.dat and  
-contain backups of some system files.  
-  
-  
-There are reports that in some Windows defragmentation programs  
-you should make sure the box "allow Windows to move files around"  
-is ''not'' checked, otherwise you will end up with some files  
-in the last cylinder of the partition which will prevent FIPS  
-from reclaiming space.  
-  
-  
-If you still have unmovable files at the end of your DOS partition  
-you should get the DOS program  
-showfat  
-version 3.0 or higher.  
-This shows you what files are where so you can deal with them  
-directly.  
-  
-  
-A freeware alternative is  
-Partition Resizer  
-which can shrink, grow and move partitions.  
-  
-  
-Some versions of DOS / Windows have a hidden flag for defrag, "/P that  
-causes defrag to move even hidden files. Use at own risk.  
-  
-  
-  
-  
-  
-Repartitioning is as dangerous process as any other partitioning  
-so you are advised to have a fresh backup handy.  
-  
-  
-  
-  
-  
-  
-  
-!! 12.5 Microsoft Partition Bug  
-  
-  
-  
-  
-  
-  
-In Microsoft products all the way up to Win 98 there is a tricky bug  
-that can cause you a bit of trouble:  
-if you have several primary fat partitions  
-and the last extended partition is not a fat partition  
-the Microsoft system will try to mount the last partition as if  
-it were a FAT partition in place of the last primary FAT partition.  
-  
-  
-There is more  
-information  
-available on the net on this.  
-  
-  
-To avoid this you can place a small logical fat partition  
-at the very end of your disk.  
-  
-  
-More information on multi OS installations are available at  
-V Communications but they keep rearranging the  
-links continuously so no direct links can be offered here.  
-  
-  
-  
-  
-  
-Since some hardware comes with setup software that is available  
-under DOS only this could come in handy anyway. Notable examples  
-are RAID controllers from DPT and a number of networking cards.  
-  
-  
-  
-  
-!!12.6 Multiple Devices (md)  
-  
-  
-  
-  
-  
-  
-Being in a state of flux you should make sure to read the latest  
-documentation on this kernel feature. It is not yet stable, beware.  
-  
-  
-Briefly explained it works by adding partitions together into new  
-devices md0, md1 etc. using mdadd before you activate  
-them using mdrun. This process can be automated using the file  
-/etc/mdtab.  
-  
-  
-The latest md system uses a  
-/etc/raidtab  
-and  
-a different syntax. Make sure your RAID-tools package matches  
-the md version as the internal protocol has changed.  
-  
-  
-Then you then treat these like any other partition on a drive. Proceed  
-with formatting etc. as described below using these new devices.  
-  
-  
-There is now also a HOWTO in development for RAID using md you  
-should read.  
-  
-  
-  
-  
-  
-  
-  
-!!12.7 Formatting  
-  
-  
-  
-  
-  
-Next comes partition formatting, putting down the data structures that will  
-describe the files and where they are located. If this is the first time it  
-is recommended you use formatting with verify. Strictly speaking it should  
-not be necessary but this exercises the I/O hard enough that it can uncover  
-potential problems, such as incorrect termination, before you store your  
-precious data. Look up the command mkfs for more details.  
-  
-  
-Linux can support a great number of file systems, rather than repeating  
-the details you can read the man page for fs which describes them in  
-some details. Note that your kernel has to have the drivers compiled in  
-or made as modules in order to be able to use these features. When the time  
-comes for kernel compiling you should read carefully through the file system  
-feature list. If you use make menuconfig you can get online help for  
-each file system type.  
-  
-  
-Note that some rescue disk systems require minix, msdos and ext2fs  
-to be compiled into the kernel.  
-  
-  
-Also swap partitions have to be prepared, and for this you use mkswap.  
-  
-  
-Some important notes on formatting with DOS and Windows can be found in  
-MS-DOS 5.00 - 7.10 Undocumented, Secret + Hidden Features.  
-  
-  
-Note that this formatting is high level formatting, that writes the file  
-system to the disk, as opposed to low level formatting that lays down  
-tracks and sectors. The latter is hardly ever needed these days.  
-  
-  
-  
-  
-!!12.8 Mounting  
-  
-  
-  
-  
-  
-Data on a partition is not available to the file system until it is mounted  
-on a mount point. This can be done manually using mount or automatically  
-during booting by adding appropriate lines to /etc/fstab. Read the  
-manual for mount and pay close attention to the tabulation.  
-  
-  
-  
-  
-  
-  
-  
-!!12.9 fstab  
-  
-  
-  
-  
-  
-  
-During the booting process the system mounts all partitions  
-as described in the fstab file which can look something  
-like this:  
-  
-  
-  
-  
-  
-# <file system> <mount point> <type> <options> <dump> <pass>  
-/dev/hda2 / ext2 defaults 0 1  
-None none swap sw 0  
-proc /proc proc defaults 0  
-/dev/hda1 /dosc vfat defaults 0 1  
-  
-  
-  
-  
-This file is somewhat sensitive to the formatting used so it  
-is best and also most convenient to edit it using one of the  
-editing tools made for this purpose,  
-such as  
-on the netfstool, a Tcl/Tk-based file system mounter,  
-and  
-kfstab, an editing tool for KDE.  
-  
-  
-Briefly, the fields are partition name, where to mount the partition,  
-type of file system, mount options, when to dump for backup  
-and when to do fsck.  
-  
-  
-Linux offers the possibility of parallel file checking (fsck)  
-but to be efficient it is important not to fsck more than one  
-partition on a drive at a time.  
-  
-  
-  
-  
-  
-  
-  
-!!12.10 Mount options  
-  
-  
-  
-  
-  
-Mounting, either by hand or using the fstab, allows for  
-a number of options that offers extra protection. Below are some  
-of the more useful options.  
-  
-  
-  
-  
-; __nodev__:  
-  
-Do not interpret character or block special  
-devices on the file system.  
-  
-  
-  
-; __noexec__:  
-  
-This disallows execution of any binaries on  
-the mounted file system. Useful in spool areas.  
-  
-  
-  
-; __nosuid__:  
-  
-This disallows set-user-identifier or  
-set-group-identifier on the mounted file system.  
-Useful in home directories.  
-  
-  
-  
-  
-  
-  
-For more information and cautions refer to the man page  
-for mount and fstab.  
-  
-  
-  
-  
-  
-  
-  
-!!12.11 Recommendations  
-  
-  
-  
-Having constructed and implemented your clever scheme  
-you are well advised to make a complete record of it all, on paper.  
-After all having all the necessary information on disk is no use  
-if the machine is down.  
-  
-  
-Partition tables can be damaged or lost, in which case it is  
-excruciatingly important that you enter the exact same numbers  
-into fdisk so you can rescue your system.  
-You can use the program printpar to make a clear record  
-of the tables. Also write down the SCSI numbers or IDE names  
-for each disk so you can put the system together again in the  
-right order.  
-  
-  
-There is also a small script in appendix  
-Appendix M: Disk System Documenter  
-which will generate a summary of your disk configurations.  
-  
-  
-For checking your hard disks you can use the Disk Advisor boot disk  
-available  
-on the net.  
-The disk builder required Windows to run. This system is useful to  
-diagnose failed disks.  
-  
-  
-You are strongly recommended to make a rescue disk and ''test'' it.  
-Most distributions make on available and is often part of the  
-installation disks. For some, such as the one for Redhat 6.1 the way  
-to invoke the disk as a rescue disk is to type ''linux rescue''  
-at the boot prompt.  
-  
-  
-There are also specialised rescue disk distributions available  
-on the net.  
-  
-  
-When need for it comes you will need to know where your root and boot  
-partitions reside which you need to write down and keep safe.  
-  
-  
-Note: the difference between a boot disk and a rescue disk is that  
-a boot disk will fail if it cannot mount the file system, typically  
-on your hard disk. A rescue disk is self contained and will work  
-even if there are no hard disks.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!13. Maintenance  
-  
-  
-  
-  
-It is the duty of the system manager to keep an eye on the drives  
-and partitions. Should any of the partitions overflow, the system  
-is likely to stop working properly, no matter how much space is  
-available on other partitions, until space is reclaimed.  
-  
-  
-Partitions and disks are easily monitored using df and  
-should be done  
-frequently, perhaps using a cron job or some other general system  
-management tool.  
-  
-  
-Do not forget the swap partitions, these are best monitored using  
-one of the memory statistics programs such as  
-free, procinfo or top.  
-  
-  
-Drive usage monitoring is more difficult but it is important for  
-the sake of performance to avoid contention - placing too much  
-demand on a single drive if others are available and idle.  
-  
-  
-It is important when installing software packages to have a clear  
-idea where the various files go. As previously mentioned GCC keeps  
-binaries in a library directory and there are also other programs  
-that for historical reasons are hard to figure out, X11 for instance  
-has an unusually complex structure.  
-  
-  
-When your system is about to fill up it is about time to check and  
-prune old logging messages as well as hunt down core files. Proper  
-use of ulimit in global shell settings can help saving you  
-from having core files littered around the system.  
-  
-  
-  
-  
-  
-  
-  
-!!13.1 Backup  
-  
-  
-  
-  
-  
-The observant reader might have noticed a few hints about the usefulness  
-of making backups. Horror stories are legio about accidents and what  
-happened to the person responsible when the backup turned out to be  
-non-functional or even non existent. You might find it simpler to invest  
-in proper backups than a second, secret identity.  
-  
-  
-There are many options and also a mini-HOWTO ( Backup-With-MSDOS )  
-detailling what you need to know. In addition to the DOS specifics it  
-also contains general information and further leads.  
-  
-  
-In addition to making these backups you should also make sure you can  
-restore the data. Not all systems verify that the data written is  
-correct and many administrators have started restoring the system after  
-an accident happy in the belief that everything is working, only to  
-discover to their horror that the backups were useless. Be careful.  
-  
-  
-There are both free and commercial backup systems available for Linux.  
-One commercial example is the disk image level backup system from  
-!QuickStart  
-offering a full function 30 day Linux demo available online.  
-  
-  
-  
-  
-  
-  
-  
-!!13.2 Defragmentation  
-  
-  
-  
-  
-  
-This is very dependent on the file system design, some suffer fast and  
-nearly debilitating fragmentation. Fortunately for us, ext2fs does  
-not belong to this group and therefore there has been very little talk  
-about defragmentation tools. It does in fact exist but is hardly ever  
-needed.  
-  
-  
-If for some reason you feel this is necessary, the quick and easy solution  
-is to do a backup and a restore. If only a small area is affected, for instance  
-the home directories, you could tar it over to a temporary area on  
-another partition, ''verify'' the archive, delete the original  
-and then untar it back again.  
-  
-  
-  
-  
-  
-  
-  
-!!13.3 Deletions  
-  
-  
-  
-  
-  
-Quite often disk space shortages can be remedied simply by deleting unnecessary  
-files that accumulate around the system. Quite often programs that terminate  
-abnormally cause all kinds of mess lying around the oddest places. Normally a  
-core dump results after such an incident and unless you are going to debug it  
-you can simply delete it. These can be found everywhere so you are advised to do  
-a global search for them now and then.  
-The locate command is useful for this.  
-  
-  
-Unexpected termination can also cause all sorts of temporary files remaining in  
-places like /tmp or /var/tmp, files that are automatically  
-removed when the program ends normally. Rebooting cleans up some of these areas  
-but not necessary all and if you have a long uptime you could end up with a lot  
-of old junk. If space is short you have to delete with care, make sure the file  
-is not in active use first. Utilities like file can often tell you what kind  
-of file you are looking at.  
-  
-  
-Many things are logged when the system is running, mostly to files in the  
-/var/log area. In particular the file /var/log/messages tends  
-to grow until deleted. It is a good idea to keep a small archive of old log  
-files around for comparison should the system start to behave oddly.  
-  
-  
-If the mail or news system is not working properly you could have  
-excessive growth in their spool areas, /var/spool/mail  
-and /var/spool/news respectively. Beware of the overview files  
-as these have a leading dot which makes them invisible to ls -l, it  
-is always better to use ls -Al which will reveal them.  
-  
-  
-User space overflow is a particularly tricky topic. Wars have been waged between  
-system administrators and users. Tact, diplomacy and a generous budget for new  
-drives is what is needed. Make use of the message-of-the-day feature, information  
-displayed during login from the /etc/motd file to tell users when space  
-is short.  
-Setting the default shell settings to prevent core files being dumped can save you  
-a lot of work too.  
-  
-  
-Certain kinds of people try to hide files around the system,  
-usually trying to take advantage of the fact that  
-files with a leading dot in the name are invisible to the ls command.  
-One common example are files that look like ... that  
-normally either are not seen,  
-or, when using ls -al disappear in the noise of normal files  
-like . or .. that are in every directory.  
-There is however a countermeasure to this,  
-use ls -Al that suppresses . or .. but shows all other dot-files.  
-  
-  
-  
-  
-  
-  
-  
-!!13.4 Upgrades  
-  
-  
-  
-  
-  
-No matter how large your drives, time will come when you will find you  
-need more. As technology progresses you can get ever more for your  
-money. At the time of writing this, it appears that 6.4 GB drives gives  
-you the most bang for your bucks.  
-  
-  
-Note that with IDE drives you might have to remove an old drive, as the  
-maximum number supported on your mother board is normally only 2 or some  
-times 4. With SCSI you can have up to 7 for narrow (8-bit) SCSI or up to  
-15 for wide (15 bit) SCSI, per channel. Some host adapters can support  
-more than a single channel and in any case you can have more than  
-one host adapter per system. My personal recommendation is that you will  
-most likely be better off with SCSI in the long run.  
-  
-  
-The question comes, where should you put this new drive? In many cases  
-the reason for expansion is that you want a larger spool area, and in that  
-case the fast, simple solution is to mount the drive somewhere under  
-/var/spool. On the other hand newer drives are likely to be  
-faster than older ones so in the long run you might find it worth your  
-time to do a full reorganizing, possibly using your old design sheets.  
-  
-  
-If the upgrade is forced by running out of space in partitions used for  
-things like /usr or /var the upgrade is a little more  
-involved. You might consider the option of a full re-installation from  
-your favourite (and hopefully upgraded) distribution. In this case you  
-will have to be careful not to overwrite your essential setups. Usually  
-these things are in the /etc directory. Proceed with care,  
-fresh backups and working rescue disks. The other possibility is to  
-simply copy the old directory over to the new directory which is  
-mounted on a temporary mount point, edit your /etc/fstab file,  
-reboot with your new partition in place and check that it works.  
-Should it fail you can reboot with your rescue disk, re-edit  
-/etc/fstab and try again.  
-  
-  
-Until volume management becomes available to Linux this is both  
-complicated and dangerous. Do not get too surprised if you discover  
-you need to restore your system from a backup.  
-  
-  
-The Tips-HOWTO gives the following example on how to move an entire  
-directory structure across:  
-----  
-  
-(cd /source/directory; tar cf - . ) | (cd /dest/directory; tar xvfp -)  
-  
-----  
-  
-  
-While this approach to moving directory trees is portable among many  
-Unix systems, it is inconvenient to remember. Also, it fails for  
-deeply nested directory trees when pathnames become to long to  
-handle for tar (GNU tar has special provisions to deal with long  
-pathnames).  
-  
-  
-If you have access to GNU cp (which is always the case on Linux  
-systems), you could as well use  
-  
-  
-  
-----  
-  
-cp -av /source/directory /dest/directory  
-  
-----  
-  
-  
-GNU cp knows specifically about symbolic links, hard links,  
-FIFOs and device files and will copy them correctly.  
-  
-  
-Remember that it might not be a good idea to try to transfer  
-/dev or /proc.  
-  
-  
-There is also a  
-Hard Disk Upgrade mini-HOWTO  
-that gives you a step by step guide on migrating an entire  
-Linux system, including LILO, form one hard disk to another.  
-  
-  
-  
-  
-!!13.5 Recovery  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-System crashes come in many and entertaining flavours, and  
-partition table corruption always guarantees plenty of excitement.  
-A recent and undoubtedly useful tool for those of us who  
-are happy with the normal level of excitement, is  
-gpart  
-which means "Guess PC-Type hard disk partitions". Useful.  
-  
-  
-In addition there are some  
-partition utilities  
-available under DOS.  
-  
-  
-  
-  
-  
-  
-  
-!!13.6 Rescue Disk  
-  
-  
-  
-  
-  
-Upgrades of kernel and hardware is not uncommon in the Linux world  
-and it is therefore important that you prepare an updated rescue  
-disk especially when you use special drivers to access your hardware.  
-Rescue disks can be gotten off the net, from your distribution or  
-you can put one together yourself. Do make sure the boot and root  
-parameters are set so the kernel will know where to find your system.  
-  
-  
-If you don't have a recovery floppy you can use the  
-GRUB boot loader  
-to load from a Linux kernel somewhere on disk, with arguments.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!14. Advanced Issues  
-  
-  
-  
-  
-Linux and related systems offer plenty of possibilities for fast, efficient  
-and devastating destruction. This document is no exception. With power comes  
-dangers and the following sections describe a few more esoteric issues that  
-should not be attempted before reading and understanding the documentation,  
-the issues and the dangers. You should also make a backup. Also remember  
-to try to restore the system from scratch from your backup at least once.  
-Otherwise you might not be the first to be found with a perfect backup of  
-your system and no tools available to reinstall it (or, even more  
-embarrassing, some critical files missing on tape).  
-  
-  
-The techniques described here are rarely necessary but can be used for very  
-specific setups. Think very clearly through what you wish to accomplish  
-before playing around with this.  
-  
-  
-  
-  
-!!14.1 Hard Disk Tuning  
-  
-  
-  
-  
-  
-The hard drive parameters can be tuned using the hdparms utility. Here  
-the most interesting parameter is probably the read-ahead parameter which  
-determines how much prefetch should be done in sequential reading.  
-  
-  
-If you want to try this out it makes most sense to tune for the  
-characteristic file size on your drive but remember that this tuning is for  
-the ''entire'' drive which makes it a bit more difficult. Probably this is  
-only of use on large servers using dedicated news drives etc.  
-  
-  
-For safety the default hdparm settings are rather conservative. The  
-disadvantage is that this mean you can get lost interrupts if you have  
-a high frequency of IRQs as you would when using the serial port and  
-an IDE disk as IRQs from the latter would mask other IRQs. This would  
-be noticeable as less then ideal performance when downloading data from  
-the net to disk. Setting hdparm -u1 device would prevent this  
-masking and either improve your performance or, depending on hardware,  
-corrupt the data on your disk. Experiment with caution and fresh  
-backups.  
-  
-  
-For more information read the article  
-The Need For Speed  
-on tuning with hdparm.  
-  
-  
-  
-  
-  
-  
-  
-!!14.2 File System Tuning  
-  
-  
-  
-  
-  
-Most file systems come with a tuning utility and for ext2fs there is  
-the tune2fs utility. Several parameters can be modified but perhaps  
-the most useful parameter here is what size should be reserved and who should  
-be able to take advantage of this which could help you getting more useful  
-space out of your drives, possibly at the cost of less room for repairing  
-a system should it crash.  
-  
-  
-  
-  
-  
-  
-  
-!!14.3 Spindle Synchronizing  
-  
-  
-  
-  
-  
-This should not in itself be dangerous, other than the peculiar fact that  
-the exact details of the connections remain unclear for many drives. The  
-theory is simple: keeping a fixed phase difference between the different  
-drives in a RAID setup makes for less waiting for the right track to come  
-into position for the read/write head. In practice it now seems that with  
-large read-ahead buffers in the drives the effect is negligible.  
-  
-  
-Spindle synchronisation should not be used on RAID0 or RAID /1 as you  
-would then lose the benefit of having the read heads over different  
-areas of the mirrored sectors.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 15. Troubleshooting  
-  
-  
-  
-  
-Much can go wrong and this is the start of a growing list of symptoms,  
-problems and solutions:  
-  
-  
-  
-  
-  
-  
-  
-!!15.1 During Installation  
-  
-  
-!Locating Disks  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Cannot find disk  
-; __Problem__:  
-  
-How to find what drive letter corresponds to what disk/partition  
-; __Solution__:  
-  
-Remember Linux does not use drive letters but device names. More  
-information can be found in  
-Drive names.  
-  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Cannot partition disk  
-; __Problem__:  
-  
-Most likely wrong input to the command line for fdisk or similar tool.  
-; __Solution__:  
-  
-Remember to use /dev/hda rather than just hda. Also  
-do not use numbers behind hda, those indicate partitions.  
-  
-  
-  
-  
-  
-  
-  
-  
-!Formatting  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Cannot format disk.  
-; __Problem__:  
-  
-Strictly speaking you format partitions not disks.  
-; __Solution__:  
-  
-Make sure you add the partition number after the device name  
-of the disk, for instance /dev/hda1 to the command line.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!15.2 During Booting  
-  
-  
-!Booting fails  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Number keep scrolling up the screen.  
-; __Problem__:  
-  
-Possibly corrupt disk.  
-; __Solution__:  
-  
-Try another disk, you might have to reinstall. Check for  
-loose cables and possible data corruption.  
-  
-  
-  
-  
-  
-; __Symptoms __:  
-  
-Get LI and then it hangs.  
-; __Problem__:  
-  
-You use LILO to load Linux but LILO cannot find your root.  
-; __Solution__:  
-  
-Read the LILO HOWTO.  
-  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Kernel panics, something about missing root file system.  
-; __Problem__:  
-  
-The kernel does not know where the root partition is.  
-; __Solution__:  
-  
-Use rdev or (if applicable) LILO to add information  
-to the kernel image where your root is.  
-  
-  
-  
-  
-  
-  
-  
-  
-!Getting into Single User Mode  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-System boots but get into a root shell in single user mode.  
-; __Problem__:  
-  
-Something went wrong in the later stages of booting and the  
-system has come far enough to let you open a shell to repair the system.  
-; __Solution__:  
-  
-Locate the problems from the boot log. Note that file system  
-can be in read-only mode. Remount read-write if you have to. Often the  
-reason is that the /etc/fstab contained an entry that was mismapped  
-such as trying to mount a swap partition as your normal file space.  
-  
-  
-  
-  
-  
-  
-  
-  
-!!15.3 During Running  
-  
-  
-!Swap  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-Short on memory  
-; __Problem__:  
-  
-Swap space is not available  
-; __Solution__:  
-  
-Type free and check the output. If you get  
-  
-  
-total used free shared buffers cached  
-Mem: 46920 30136 16784 7480 11788 5764  
--/+ buffers/cache: 12584 34336  
-Swap: 128484 9176 119308  
-  
-  
-then system is running normal. If the line with Swap: contains zeros  
-you have either not mounted the swap space (partition or swap file)  
-(see swapon(8))  
-or not formatted the swap space (see mkswap(8)).  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Partitions  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-No room amidst plenty 1  
-; __Problem__:  
-  
-Partitionitis:Underdimensioned partition sizes  
-has caused overflow in some areas  
-; __Solution__:  
-  
-Examine your partition usage using df(1) and locate  
-problem areas. Normally the problem can be solved by removing old junk but  
-you might have to repartition your system,  
-see section  
-Repartitioning.  
-  
-  
-  
-  
-  
-; __Symptoms__:  
-  
-No room amidst plenty 2  
-; __Problem__:  
-  
-Running out of i-nodes has caused overflow in some ares,  
-often in areas with many small files such as news spool.  
-; __Solution__:  
-  
-Examine your partition usage using df -i and locate  
-problem areas. Normally the problem is solved by reformatting using  
-a higher number of i-nodes, see mkfs(8) and related man pages.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!16. Further Information  
-  
-  
-  
-  
-There is wealth of information one should go through when setting up a  
-major system, for instance for a news or general Internet service provider.  
-The FAQs in the following groups are useful:  
-  
-  
-  
-  
-!!16.1 News groups  
-  
-  
-  
-  
-  
-Some of the most interesting news groups are:  
-  
-  
-*  
-Storage.  
-*  
-  
-*  
-PC storage.  
-*  
-  
-*  
-AFS.  
-*  
-  
-*  
-SCSI.  
-*  
-  
-*  
-Linux setup.  
-*  
-  
-  
-  
-Most newsgroups have their own FAQ that are designed to answer most of your  
-questions, as the name Frequently Asked Questions indicate. Fresh versions  
-should be posted regularly to the relevant newsgroups. If you cannot find it  
-in your news spool you could go directly to the  
-FAQ main archive FTP site. The WWW versions can be browsed at  
-FAQ main archive WWW site.  
-  
-  
-Some FAQs have their own home site, of particular interest here are  
-  
-  
-*  
-SCSI FAQ and  
-*  
-  
-*  
-comp.arch.storage FAQ.  
-*  
-  
-  
-  
-  
-  
-  
-  
-  
-!!16.2 Mailing Lists  
-  
-  
-  
-  
-  
-These are low noise channels mainly for developers. Think  
-twice before asking questions there as noise delays the development.  
-Some relevant lists are linux-raid, linux-scsi and linux-ext2fs.  
-Many of the most useful mailing lists run on the vger.rutgers.edu server  
-but this is notoriously overloaded, so try to find a mirror. There are some lists mirrored at  
-The Redhat Home Page.  
-Many lists are also accessible at  
-linuxhq,  
-and the rest of the web site is a gold mine of useful information.  
-  
-  
-If you want to find out more about the lists available you can send a message  
-with the line lists to the list server at vger.rutgers.edu (  
-majordomo@vger.rutgers.edu).  
-If you need help on how to use the mail server just send the line help  
-to the same address.  
-Due to the popularity of this server it is likely it takes a bit to time before  
-you get a reply or even get messages after you send a subscribe command.  
-  
-  
-There is also a number of other majordomo list servers that can be of interest  
-such as the EATA driver list (  
-linux-eata@mail.uni-mainz.de)  
-and the Intelligent IO list  
-linux-i2o@dpt.com.  
-  
-  
-Mailing lists are in a state of flux but you can find links to a number of  
-interesting lists from the  
-Linux Documentation Homepage.  
-  
-  
-  
-  
-  
-  
-  
-!!16.3 HOWTO  
-  
-  
-  
-  
-  
-These are intended as the primary starting points to  
-get the background information as well as show you how to solve  
-a specific problem.  
-Some relevant HOWTOs are Bootdisk, Installation, SCSI and UMSDOS.  
-The main site for these is the  
-LDP archive.  
-  
-  
-There is a a new HOWTO out that deals with setting up a  
-DPT RAID system, check out the  
-DPT RAID HOWTO homepage.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!16.4 Mini-HOWTO  
-  
-  
-  
-  
-  
-These are the smaller free text relatives to the HOWTOs.  
-Some relevant mini-HOWTOs are  
-Backup-With-MSDOS, Diskless, LILO, Large Disk,  
-Linux+DOS+Win95+OS2, Linux+OS2+DOS, Linux+Win95,  
-NFS-Root, Win95+Win+Linux, ZIP Drive .  
-You can find these at the same place as the HOWTOs, usually in a sub directory  
-called mini. Note that these are scheduled to be converted into SGML and  
-become proper HOWTOs in the near future.  
-  
-  
-The old Linux Large IDE mini-HOWTO is no longer valid, instead read  
-/usr/src/linux/drivers/block/README.ide or  
-/usr/src/linux/Documentation/ide.txt.  
-  
-  
-  
-  
-!!16.5 Local Resources  
-  
-  
-  
-  
-  
-In most distributions of Linux there is a document directory installed,  
-have a look in the  
-/usr/doc directory.  
-where most packages store their main documentation and README files etc.  
-Also you will here find the HOWTO archive (  
-/usr/doc/HOWTO)  
-of ready formatted HOWTOs  
-and also the mini-HOWTO archive (  
-/usr/doc/HOWTO/mini)  
-of plain text documents.  
-  
-  
-Many of the configuration files mentioned earlier can be found in the  
-/etc  
-directory. In particular you will want to work with the  
-/etc/fstab  
-file that sets up the mounting of partitions  
-and possibly also  
-/etc/mdtab  
-file that is used for the md system to set up RAID.  
-  
-  
-The kernel source in  
-/usr/src/linux  
-is, of course, the ultimate documentation. In other  
-words, ''use the source, Luke''.  
-It should also be pointed out that the kernel comes not only with  
-source code which is even commented (well, partially at least)  
-but also an informative  
-documentation directory.  
-If you are about to ask any questions about the kernel you should  
-read this first, it will save you and many others a lot of time  
-and possibly embarrassment.  
-  
-  
-Also have a look in your system log file (  
-/var/log/messages)  
-to see what is going on and in particular how the booting went if  
-too much scrolled off your screen. Using tail -f /var/log/messages  
-in a separate window or screen will give you a continuous update of what is  
-going on in your system.  
-  
-  
-You can also take advantage of the  
-/proc  
-file system that is a window into the inner workings of your system.  
-Use cat rather than more to view the files as they are  
-reported as being zero length. Reports are that less works well here.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!16.6 Web Pages  
-  
-  
-  
-  
-  
-  
-There is a huge number of informative web pages out there and by their very  
-nature they change quickly so don't be too surprised if these links become  
-quickly outdated.  
-  
-  
-A good starting point is of course the  
-Linux Documentation Homepage.  
-that is a information central for documentation, project pages and much, much more.  
-  
-  
-  
-  
-  
-  
-  
-  
-*Mike Neuffer, the author of the DPT caching RAID controller drivers, has some  
-interesting pages on  
-SCSI  
-and  
-DPT.  
-  
-*  
-  
-*Software RAID development information can be found at  
-Linux Kernel site  
-along with patches and utilities.  
-  
-*  
-  
-*Disk related information on benchmarking, RAID, reliability and  
-much, much more can be found at  
-Linas Vepstas  
-project page.  
-  
-*  
-  
-*There is also information available on how to  
-RAID the root partition  
-and what software packages are needed to achieve this.  
-  
-*  
-  
-*In depth documentation on  
-ext2fs  
-is also available.  
-  
-*  
-  
-*People who looking for information on VFAT, FAT32 and Joliet  
-could have a look at the  
-development page.  
-These drivers are in the 2.1.x kernel development series as well as  
-in 2..34 and later.  
-  
-*  
-  
-  
-  
-For diagrams and information on all sorts of disk drives, controllers etc. both  
-for current and discontinued lines  
-The Ref  
-is the site you need. There is a lot of useful information here, a real treasure trove.  
-  
-  
-Please let me know if you have any other leads that can be of interest.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!16.7 Search Engines  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-When all fails try the internet search engines. There is a huge number  
-of them, all a little different from each other. It falls outside the  
-scope of this HOWTO to describe how best to use them. Instead you  
-could turn to the Troubleshooting on the Internet mini-HOWTO, and the  
-Updated mini-HOWTO.  
-  
-  
-  
-  
-  
-If you have to ask for help you are most likely to get help in the  
-Linux Setup  
-news group.  
-Due to large workload and a slow network connection I am not able to  
-follow that newsgroup so if you want to contact me you have to do so  
-by e-mail.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!17. Getting Help  
-  
-  
-  
-  
-  
-  
-In the end you might find yourself unable to solve your problems and need  
-help from someone else. The most efficient way is either to ask someone  
-local or in your nearest Linux user group, search the web for the nearest  
-one.  
-  
-  
-Another possibility is to ask on Usenet News in one of the many, many  
-newsgroups available. The problem is that these have such a high  
-volume and noise (called low signal-to-noise ratio) that your question  
-can easily fall through unanswered.  
-  
-  
-No matter where you ask it is important to ask well or you will not be  
-taken seriously. Saying just ''my disk does not work'' is not going  
-to help you and instead the noise level is increased even further and if  
-you are lucky someone will ask you to clarify.  
-  
-  
-Instead describe your problems in some detail that  
-will enable people to help you. The problem could lie somewhere you did  
-not expect. Therefore you are advised to list up the following information  
-on your system:  
-  
-  
-  
-  
-; __Hardware__:  
-  
-  
-  
-  
-*Processor  
-*  
-  
-*DMA  
-*  
-  
-*IRQ  
-*  
-  
-*Chip set (LX, BX etc)  
-*  
-  
-*Bus (ISA, VESA, PCI etc)  
-*  
-  
-*Expansion cards used (Disk controllers, video, IO etc)  
-*  
-  
-  
-  
-  
-; __Software__:  
-  
-  
-  
-  
-*BIOS (On motherboard and possibly SCSI host adapters)  
-*  
-  
-*LILO, if used  
-*  
-  
-*Linux kernel version as well as possible modifications and patches  
-*  
-  
-*Kernel parameters, if any  
-*  
-  
-*Software that shows the error (with version number or date)  
-*  
-  
-  
-  
-  
-; __Peripherals__:  
-  
-  
-  
-  
-*Type of disk drives with manufacturer name, version and type  
-*  
-  
-*Other relevant peripherals connected to the same busses  
-*  
-  
-  
-  
-  
-  
-  
-  
-As an example of how interrelated these problems are: an old chip set caused  
-problems with a certain combination of video controller and SCSI host adapter.  
-  
-  
-Remember that booting text is logged to /var/log/messages which can  
-answer most of the questions above. Obviously if the drives fail you might not  
-be able to get the log saved to disk but you can at least scroll back up the  
-screen using the SHIFT and PAGE UP keys. It may also be useful to  
-include part of this in your request for help but do not go overboard, keep  
-it ''brief'' as a complete log file dumped to Usenet News is more than a  
-little annoying.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!18. Concluding Remarks  
-  
-  
-  
-  
-Disk tuning and partition decisions are difficult to make, and there are no  
-hard rules here. Nevertheless it is a good idea to work more on this as the  
-payoffs can be considerable. Maximizing usage on one drive only while the  
-others are idle is unlikely to be optimal, watch the drive light, they are  
-not there just for decoration. For a properly set up system the lights should  
-look like Christmas in a disco. Linux offers software RAID but also support  
-for some hardware base SCSI RAID controllers. Check what is available. As  
-your system and experiences evolve you are likely to repartition and you  
-might look on this document again. Additions are always welcome.  
-  
-  
-Finally I'd like to sum up my recommendations:  
-  
-  
-*Disks are cheap but the data they contain could be much more  
-valuable, use and test your backup system.  
-*  
-  
-*Work is also expensive, make sure you get large enough disks  
-as refitting new or repartitioning old disks takes time.  
-*  
-  
-*Think reliability, replace old disks before they fail.  
-*  
-  
-*Keep a paper copy of your setup, having it all on disk when  
-the machine is down will not help you much.  
-*  
-  
-*Start out with a simple design with a minimum of fancy technology  
-and rather fit it in later. In general adding is easier than replacing,  
-be it disks, technology or other features.  
-*  
-  
-  
-  
-  
-  
-  
-  
-  
-!!18.1 Coming Soon  
-  
-  
-  
-  
-  
-There are a few more important things that are about to appear here. In  
-particular I will add more example tables as I am about to set  
-up two fairly large and general systems, one at work and one at home. These  
-should give some general feeling on how a system can be set up for either  
-of these two purposes. Examples of smooth running existing systems are  
-also welcome.  
-  
-  
-There is also a fair bit of work left to do on the various kinds of file  
-systems and utilities.  
-  
-  
-There will be a big addition on drive technologies coming soon  
-as well as a more in depth description on using  
-fdisk, cfdisk and sfdisk.  
-The file systems will be beefed up as more features become available  
-as well as more on RAID and what directories can benefit from what  
-RAID level.  
-  
-  
-  
-  
-  
-There is some minor overlapping with  
-the Linux Filesystem Structure Standard and FHS  
-that I hope to integrate better soon, which will  
-probably mean a big reworking  
-of all the tables at the end of this document.  
-  
-  
-As more people start reading this I should get some more  
-comments and feedback. I am also thinking of making a program  
-that can automate a fair bit of this decision making process  
-and although it is unlikely to be optimum it should provide  
-a simpler, more complete starting point.  
-  
-  
-  
-  
-!!18.2 Request for Information  
-  
-  
-  
-  
-  
-It has taken a fair bit of time to write this document and although  
-most pieces are beginning to come together there are still some  
-information needed before we are out of the beta stage.  
-  
-  
-  
-  
-  
-* More information on swap sizing policies is needed as well as  
-information on the largest swap size possible under the various kernel  
-versions.  
-*  
-  
-* How common is drive or file system corruption? So far I have  
-only heard of problems caused by flaky hardware.  
-*  
-  
-* References to speed and drives is needed.  
-*  
-  
-* Are any other Linux compatible RAID controllers available?  
-*  
-  
-* What relevant monitoring, management and maintenance  
-tools are available?  
-*  
-  
-* General references to information sources are needed, perhaps  
-this should be a separate document?  
-*  
-  
-* Usage of /tmp and /var/tmp has been hard to  
-determine, in fact what programs use which directory is not well defined  
-and more information here is required. Still, it seems at least clear  
-that these should reside on different physical drives in order to increase  
-paralellicity.  
-*  
-  
-  
-  
-  
-  
-!!18.3 Suggested Project Work  
-  
-  
-  
-  
-  
-Now and then people post on comp.os.linux.*, looking for good project  
-ideas. Here I will list a few that comes to mind that are relevant to  
-this document. Plans about big projects such as new file systems should  
-still be posted in order to either find co-workers or see if someone is  
-already working on it.  
-  
-  
-  
-  
-  
-  
-  
-; __Planning tools__:  
-  
-that can automate the design process outlines  
-earlier would probably make a medium sized project, perhaps as an  
-exercise in constraint based programming.  
-  
-  
-  
-; __Partitioning tools__:  
-  
-that take the output of the previously  
-mentioned program and format drives in parallel and apply the  
-appropriate symbolic links to the directory structure. It would  
-probably be best if this were integrated in existing system  
-installation software. The drive partitioning setup used in  
-Solaris is an example of what it can look like.  
-  
-  
-  
-; __Surveillance tools__:  
-  
-that keep an eye on the partition sizes  
-and warn before a partition overflows.  
-  
-  
-  
-; __Migration tools__:  
-  
-that safely lets you move old structures to  
-new (for instance RAID) systems. This could probably be done as a  
-shell script controlling a back up program and would be rather  
-simple. Still, be sure it is safe and that the changes can be undone.  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!19. Questions and Answers  
-  
-  
-  
-  
-  
-This is just a collection of what I believe are the most common  
-questions people might have. Give me more feedback and I will  
-turn this section into a proper FAQ.  
-  
-  
-  
-  
-  
-*Q:How many physical disk drives (spindles) does a Linux system need?  
-  
-  
-A: Linux can run just fine on one drive (spindle). Having enough  
-RAM (around 32 MB, and up to 64 MB) to support swapping is a  
-better price/performance choice than getting a second disk.  
-(E)IDE disk is usually cheaper (but a little slower) than SCSI.  
-  
-  
-  
-  
-*  
-  
-*Q: I have a single drive, will this HOWTO help me?  
-  
-  
-A: Yes, although only to a minor degree. Still, section  
-Physical Track Positioning  
-will offer you some gains.  
-  
-  
-  
-  
-*  
-  
-*Q: Are there any disadvantages in this scheme?  
-  
-  
-A: There is only a minor snag: if even a single partition overflows  
-the system might stop working properly. The severity depends of course  
-on what partition is affected. Still this is not hard to monitor, the  
-command df gives you a good overview of the situation. Also check  
-the swap partition(s) using free to make sure you are not about  
-to run out of virtual memory.  
-  
-  
-  
-  
-*  
-  
-*Q: OK, so should I split the system into as many partitions  
-as possible for a single drive?  
-  
-  
-A: No, there are several disadvantages to that. First of all maintenance  
-becomes needlessly complex and you gain very little in this. In fact if your  
-partitions are too big you will seek across larger areas than needed.  
-This is a balance and dependent on the number of physical drives you have.  
-  
-  
-  
-  
-*  
-  
-*Q: Does that mean more drives allows more partitions?  
-  
-  
-A: To some degree, yes. Still, some directories should not be split  
-off from root, check out the file system standards for more details.  
-  
-  
-  
-  
-*  
-  
-*Q: What if I have many drives I want to use?  
-  
-  
-A: If you have more than 3-4 drives you should consider using RAID of  
-some form. Still, it is a good idea to keep your root partition on a  
-simple partition without RAID, see section  
-RAID for more details.  
-  
-  
-  
-  
-*  
-  
-*Q: I have installed the latest Windows95 but cannot access this  
-partition from within the Linux system, what is wrong?  
-  
-  
-A: Most likely you are using FAT32 in your windows partition. It  
-seems that Microsoft decided we needed yet another format, and this  
-was introduced in their latest version of Windows95, called OSR2.  
-The advantage is that this format is better suited to large drives.  
-  
-  
-You might also be interested to hear that Microsoft NT 4.0 does not  
-support it yet either.  
-  
-  
-  
-  
-*  
-  
-*Q: I cannot get the disk size and partition sizes to match,  
-something is missing. What has happened?  
-  
-  
-A:It is possible you have mounted a partition onto a mount point that  
-was not an empty directory. Mount points are directories and if it  
-is not empty the mounting will mask the contents. If you do the sums  
-you will see the amount of disk space used in this directory is  
-missing from the observed total.  
-  
-  
-To solve this you can boot from a rescue disk and see what is hiding  
-behind your mount points and remove or transfer the contents by  
-mounting the offending partition on a temporary mounting point. You  
-might find it useful to have "spare" emergency mounting points ready  
-made.  
-  
-  
-  
-  
-*  
-  
-*Q: It doesn't look like my swap partition is in use, how come?  
-  
-  
-A: It is possible that it has not been necessary to swap out,  
-especially if you have plenty of RAM. Check your log files to see  
-if you ran out of memory at one point or another, in that case  
-your swap space should have been put to use. If not it is  
-possible that either the swap partition was not assigned the  
-right number, that you did not prepare it with mkswap or  
-that you have not done swapon or added it to your  
-/etc/fstab  
-file.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-*  
-  
-*Q: What is this Nyx that is mentioned several times here?  
-  
-  
-A: It is a large free Unix system with currently about 10000 users.  
-I use it for my web pages for this HOWTO as well as a source  
-of ideas for a setup of large Unix systems. It has been running for  
-many years and has a quite stable setup. For more information you can  
-view the  
-Nyx homepage  
-which also gives you information on how to get your own free account.  
-  
-  
-  
-  
-*  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 20. Bits and Pieces  
-  
-  
-  
-  
-This is basically a section where I stuff all the bits I have not yet  
-decided where should go, yet that I feel is worth knowing about. It is  
-a kind of transient area.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!20.1 Swap Partition: to Use or Not to Use  
-  
-  
-  
-  
-  
-In many cases you do not need a swap partition, for instance if you  
-have plenty of RAM, say, more than 64 MB, and you are the sole user  
-of the machine. In this case you can experiment running without a  
-swap partition and check the system logs to see if you ran out of  
-virtual memory at any point.  
-  
-  
-Removing swap partitions have two advantages:  
-  
-  
-*you save disk space (rather obvious really)  
-*  
-  
-*you save seek time as swap partitions otherwise would  
-lie in the middle of your disk space.  
-*  
-  
-  
-  
-In the end, having a swap partition is like having a heated toilet:  
-you do not use it very often, but you sure appreciate it when  
-you require it.  
-  
-  
-  
-  
-!!20.2 Mount Point and /mnt  
-  
-  
-  
-  
-  
-In an earlier version of this document I proposed to put all  
-permanently mounted partitions under /mnt. That, however, is  
-not such a good idea as this itself can be used as a mount point, which  
-leads to all mounted partitions becoming unavailable. Instead I will  
-propose mounting straight from root using a meaningful name like  
-/mnt.descriptive-name.  
-  
-  
-Lately I have become aware that some Linux distributions use mount points  
-at subdirectories ''under'' /mnt, such as /mnt/floppy  
-and /mnt/cdrom, which just shows how confused the whole issue is.  
-Hopefully FHS should clarify this.  
-  
-  
-  
-  
-  
-  
-  
-!! 20.3 Power and Heating  
-  
-  
-  
-  
-  
-  
-Not many years ago a machine with the equivalent power of a modern PC  
-required 3-phase power and cooling, usually by air conditioning the machine  
-room, some times also by water cooling. Technology has progressed very  
-quickly giving not only high speed but also low power components. Still,  
-there is a definite limit to the technology, something one should keep in  
-mind as the system is expanded with yet another disk drive or PCI  
-card. When the power supply is running at full rated power, keep in mind  
-that all this energy is going somewhere, mostly into heat. Unless this is  
-dissipated using fans you will get a serious heating inside the cabinet  
-followed by a reduced reliability and also life time of the electronics.  
-Manufacturers state minimum cooling requirements for their drives, usually  
-in terms of cubic feet per minute (CFM). You are well advised to take this  
-serious.  
-  
-  
-Keep air flow passages open, clean out dust and check the temperature of your  
-system running. If it is too hot to touch it is probably running too hot.  
-  
-  
-If possible use sequential spin up for the drives. It is during  
-spin up, when the drive platters accelerate up to normal speed,  
-that a drive consumes maximum power and if all drives start up  
-simultaneously you could go beyond the rated power maximum of  
-your power supply.  
-  
-  
-  
-  
-!!20.4 Deja  
-  
-  
-  
-  
-  
-  
-  
-This is an Internet system that no doubt most of you are familiar with.  
-It searches and serves ''Usenet News'' articles from 1995 and to the  
-latest postings and also offers a web based reading and posting interface.  
-There is a lot more, check out  
-Deja  
-for more information. It changed name from Dejanews.  
-  
-  
-What perhaps is less known, is that they use about 120 Linux SMP  
-computers many of which use the md module to manage between 4  
-and 24 Gig of disk space (over 1200 Gig altogether) for this service.  
-The system is continuously growing but at the time of writing they  
-use mostly dual Pentium Pro 200MHz and Pentium II 300 MHz  
-systems with 256 MB RAM or more.  
-  
-  
-A production database machine normally has 1 disk for the operating system and  
-between 4 and 6 disks managed by the md module where the articles are  
-archived.  
-The drives are connected to !BusLogic Model BT-946C and BT-958  
-PCI SCSI adapters, usually one to a machine.  
-  
-  
-For the production  
-systems (which are up 365 days a year) the downtime attributable to  
-disk errors is less than .25 % (that is a quarter of 1%, not 25%).  
-  
-  
-Just in case: this is not an advertisement, it is stated as an  
-example of how much is required for what is a major Internet  
-service.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!!20.5 Crash Recovery  
-  
-  
-  
-  
-  
-  
-Occationally hard disks crash. A crash causing data scrambling can  
-often be at least partially recovered from and there are already  
-HOWTOs describing this.  
-  
-  
-In case of hardware failure things are far more serious, and you  
-have two options: either send the drive to a professional data  
-recovery company, or try recovering yourself. The latter is of  
-course ''high risk'' and can cause more damage.  
-  
-  
-If a disk stops rotating or fails to spin up, the number one  
-advice is first to turn off the system as fast as safely possible.  
-  
-  
-Next you could try disconnecting the drives and power up the  
-machine, just to check power with a multimeter that power is  
-present. Quite often connectors can get unseated and cause all  
-sorts of problems.  
-  
-  
-If you decide to risk trying it yourself you could check all  
-connectors and then reapply power and see if the drive spins up  
-and responds. If it still is dead turn off power quickly,  
-preferrably before the operating system boots. Make sure that  
-delayed spinup is not deceiving you here.  
-  
-  
-If you decide to progress even further (and take higher risks)  
-you could remove the drive, give it a firm tap on the side so  
-that the disk moves a little with respect to the casing. This  
-can help in unsticking the head from the surface, allowing the  
-platter to move freely as the motor power is not sufficient to  
-unstick a stuck head on its own.  
-  
-  
-Also if a drive has been turned off for a while after running  
-for long periods of time, or if it has overheated, the lubricant  
-can harden of drain out of the bearings. In this case warming the  
-drive slowly and gently up to normal operating temperature will  
-possibly recover the lubrication problems.  
-  
-  
-If after this the drive still does not respond the last possible  
-and the highest risk suggestion is to replace the circuit board  
-of the drive with a board from am identical model drive.  
-  
-  
-Often the contents of a drive is worth far more than the media  
-itself, so do consider professional help. These companies have  
-advanced equipment and know-how obtained from the manufacturers  
-on how to recover a damaged drive, far beyond that of a hobbyist.  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 21. Appendix A: Partitioning Layout Table: Mounting and Linking  
-  
-  
-  
-  
-The following table is designed to make layout a simpler paper  
-and pencil exercise. It is probably best to print it out (using  
-NON PROPORTIONAL fonts) and adjust the numbers until you are  
-happy with them.  
-  
-  
-Mount point is what directory you wish to mount a partition on or  
-the actual device. This is also a good place to note how you plan  
-to use symbolic links.  
-  
-  
-The size given corresponds to a fairly big Debian 1.2.6 installation.  
-Other examples are coming later.  
-  
-  
-Mainly you use this table to select what structure and drives you will use,  
-the partition numbers and letters will come from the next two tables.  
-  
-  
-  
-  
-  
-Directory Mount point speed seek transfer size SIZE  
-swap __________ ooooo ooooo ooooo 32 ____  
-/ __________ o o o 20 ____  
-/tmp __________ oooo oooo oooo ____  
-/var __________ oo oo oo 25 ____  
-/var/tmp __________ oooo oooo oooo ____  
-/var/spool __________ ____  
-/var/spool/mail __________ o o o ____  
-/var/spool/news __________ ooo ooo oo ____  
-/var/spool/____ __________ ____ ____ ____ ____  
-/home __________ oo oo oo ____  
-/usr __________ 500 ____  
-/usr/bin __________ o oo o 250 ____  
-/usr/lib __________ oo oo ooo 200 ____  
-/usr/local __________ ____  
-/usr/local/bin __________ o oo o ____  
-/usr/local/lib __________ oo oo ooo ____  
-/usr/local/____ __________ ____  
-/usr/src __________ o oo o 50 ____  
-DOS __________ o o o ____  
-Win __________ oo oo oo ____  
-NT __________ ooo ooo ooo ____  
-/mnt._________ __________ ____ ____ ____ ____  
-/mnt._________ __________ ____ ____ ____ ____  
-/mnt._________ __________ ____ ____ ____ ____  
-/_____________ __________ ____ ____ ____ ____  
-/_____________ __________ ____ ____ ____ ____  
-/_____________ __________ ____ ____ ____ ____  
-Total capacity:  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 22. Appendix B: Partitioning Layout Table: Numbering and Sizing  
-  
-  
-  
-  
-This table follows the same logical structure as the table above  
-where you decided what disk to use. Here you select the physical  
-tracking, keeping in mind the effect of track positioning mentioned  
-earlier in  
-Physical Track Positioning.  
-  
-  
-The final partition number will come out of the table after this.  
-  
-  
-  
-  
-  
-Drive sda sdb sdc hda hdb hdc ___  
-SCSI ID | __ | __ | __ |  
-Directory  
-swap | | | | | | |  
-/ | | | | | | |  
-/tmp | | | | | | |  
-/var : : : : : : :  
-/var/tmp | | | | | | |  
-/var/spool : : : : : : :  
-/var/spool/mail | | | | | | |  
-/var/spool/news : : : : : : :  
-/var/spool/____ | | | | | | |  
-/home | | | | | | |  
-/usr | | | | | | |  
-/usr/bin : : : : : : :  
-/usr/lib | | | | | | |  
-/usr/local : : : : : : :  
-/usr/local/bin | | | | | | |  
-/usr/local/lib : : : : : : :  
-/usr/local/____ | | | | | | |  
-/usr/src : : : :  
-DOS | | | | | | |  
-Win : : : : : : :  
-NT | | | | | | |  
-/mnt.___/_____ | | | | | | |  
-/mnt.___/_____ : : : : : : :  
-/mnt.___/_____ | | | | | | |  
-/_____________ : : : : : : :  
-/_____________ | | | | | | |  
-/_____________ : : : : : : :  
-Total capacity:  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 23. Appendix C: Partitioning Layout Table: Partition Placement  
-  
-  
-  
-  
-This is just to sort the partition numbers in ascending order ready  
-to input to fdisk or cfdisk. Here you take physical track positioning  
-into account when finalizing your design. Unless you get specific  
-information otherwise, you can assume track 0 is the outermost track.  
-  
-  
-These numbers and letters  
-are then used to update the previous tables, all of which you will find  
-very useful in later maintenance.  
-  
-  
-In case of disk crash you might find it handy to know what SCSI id  
-belongs to which drive, consider keeping a paper copy of this.  
-  
-  
-  
-  
-  
-Drive : sda sdb sdc hda hdb hdc ___  
-Total capacity: | ___ | ___ | ___ | ___ | ___ | ___ | ___  
-SCSI ID | __ | __ | __ |  
-Partition  
-1 | | | | | | |  
-2 : : : : : : :  
-3 | | | | | | |  
-4 : : : : : : :  
-5 | | | | | | |  
-6 : : : : : : :  
-7 | | | | | | |  
-8 : : : : : : :  
-9 | | | | | | |  
-10 : : : : : : :  
-11 | | | | | | |  
-12 : : : : : : :  
-13 | | | | | | |  
-14 : : : : : : :  
-15 | | | | | | |  
-16 : : : : : : :  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!24. Appendix D: Example: Multipurpose Server  
-  
-  
-  
-  
-The following table is from the setup of a medium sized multipurpose  
-server where I once worked. Aside from being a general Linux machine it will  
-also be a network related server (DNS, mail, FTP, news, printers etc.)  
-X server for various CAD programs, CD ROM burner and many other things.  
-The files reside on 3 SCSI drives with a capacity of 600, 1000 and 1300  
-MB.  
-  
-  
-Some further speed could possibly be gained by splitting /usr/local  
-from the rest of the /usr system but we deemed the further added  
-complexity would not be worth it. With another couple of drives  
-this could be more worthwhile. In this setup drive sda is old and slow  
-and could just a well be replaced by an IDE drive. The other two drives  
-are both rather fast. Basically we split most of the load between these  
-two. To reduce dangers of imbalance in partition sizing we have decided  
-to keep /usr/bin and /usr/local/bin in one drive  
-and /usr/lib and /usr/local/lib on another separate drive  
-which also affords us some drive parallelizing.  
-  
-  
-Even more could be gained by using RAID but we felt that as a server we  
-needed more reliability than was then afforded by the md patch and  
-a dedicated RAID controller was out of our reach.  
-  
-  
-  
-----  
-  
-!!25. Appendix E: Example: Mounting and Linking  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-Directory Mount point speed seek transfer size SIZE  
-swap sdb2, sdc2 ooooo ooooo ooooo 32 2x64  
-/ sda2 o o o 20 100  
-/tmp sdb3 oooo oooo oooo 300  
-/var __________ oo oo oo ____  
-/var/tmp sdc3 oooo oooo oooo 300  
-/var/spool sdb1 436  
-/var/spool/mail __________ o o o ____  
-/var/spool/news __________ ooo ooo oo ____  
-/var/spool/____ __________ ____ ____ ____ ____  
-/home sda3 oo oo oo 400  
-/usr sdb4 230 200  
-/usr/bin __________ o oo o 30 ____  
-/usr/lib -> libdisk oo oo ooo 70 ____  
-/usr/local __________ ____  
-/usr/local/bin __________ o oo o ____  
-/usr/local/lib -> libdisk oo oo ooo ____  
-/usr/local/____ __________ ____  
-/usr/src ->/home/usr.src o oo o 10 ____  
-DOS sda1 o o o 100  
-Win __________ oo oo oo ____  
-NT __________ ooo ooo ooo ____  
-/mnt.libdisk sdc4 oo oo ooo 226  
-/mnt.cd sdc1 o o oo 710  
-Total capacity: 2900 MB  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!26. Appendix F: Example: Numbering and Sizing  
-  
-  
-  
-  
-Here we do the adjustment of sizes and positioning.  
-  
-  
-  
-  
-  
-Directory sda sdb sdc  
-swap | | 64 | 64 |  
-/ | 100 | | |  
-/tmp | | 300 | |  
-/var : : : :  
-/var/tmp | | | 300 |  
-/var/spool : : 436 : :  
-/var/spool/mail | | | |  
-/var/spool/news : : : :  
-/var/spool/____ | | | |  
-/home | 400 | | |  
-/usr | | 200 | |  
-/usr/bin : : : :  
-/usr/lib | | | |  
-/usr/local : : : :  
-/usr/local/bin | | | |  
-/usr/local/lib : : : :  
-/usr/local/____ | | | |  
-/usr/src : : : :  
-DOS | 100 | | |  
-Win : : : :  
-NT | | | |  
-/mnt.libdisk | | | 226 |  
-/mnt.cd : : : 710 :  
-/mnt.___/_____ | | | |  
-Total capacity: | 600 | 1000 | 1300 |  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!27. Appendix G: Example: Partition Placement  
-  
-  
-  
-  
-This is just to sort the partition numbers in ascending order ready  
-to input to fdisk or cfdisk. Remember to optimize for physical track  
-positioning (not done here).  
-  
-  
-  
-  
-  
-Drive : sda sdb sdc  
-Total capacity: | 600 | 1000 | 1300 |  
-Partition  
-1 | 100 | 436 | 710 |  
-2 : 100 : 64 : 64 :  
-3 | 400 | 300 | 300 |  
-4 : : 200 : 226 :  
-  
-  
-  
-  
-  
-----  
-  
-!!28. Appendix H: Example II  
-  
-  
-  
-  
-  
-  
-The following is an example of a  
-server setup in an academic setting, and is contributed by  
-nakano (at) apm.seikei.ac.jp. I have only done minor editing to  
-this section.  
-  
-  
-/var/spool/delegate is a directory for storing logs and cache files  
-of an WWW proxy server program, "delegated". Since I don't notice it  
-widely, there are 1000--1500 requests/day currently, and average  
-disk usage is 15--30% with expiration of caches each day.  
-  
-  
-/mnt.archive is used for data files which are big and not frequently  
-referenced such a s experimental data (especially graphic ones),  
-various source archives, and Win95 backups (growing very fast...).  
-  
-  
-/mnt.root is backup root file system containing rescue utilities. A  
-boot floppy is also prepared to boot with this partition.  
-  
-  
-  
-  
-  
-=================================================  
-Directory sda sdb hda  
-swap | 64 | 64 | |  
-/ | | | 20 |  
-/tmp | | | 180 |  
-/var : 300 : : :  
-/var/tmp | | 300 | |  
-/var/spool/delegate | 300 | | |  
-/home | | | 850 |  
-/usr | 360 | | |  
-/usr/lib -> /mnt.lib/usr.lib  
-/usr/local/lib -> /mnt.lib/usr.local.lib  
-/mnt.lib | | 350 | |  
-/mnt.archive : : 1300 : :  
-/mnt.root | | 20 | |  
-Total capacity: 1024 2034 1050  
-=================================================  
-Drive : sda sdb hda  
-Total capacity: | 1024 | 2034 | 1050 |  
-Partition  
-1 | 300 | 20 | 20 |  
-2 : 64 : 1300 : 180 :  
-3 | 300 | 64 | 850 |  
-4 : 360 : ext : :  
-5 | | 300 | |  
-6 : : 350 : :  
-Filesystem 1024-blocks Used Available Capacity Mounted on  
-/dev/hda1 19485 10534 7945 57% /  
-/dev/hda2 178598 13 169362 % /tmp  
-/dev/hda3 826640 440814 343138 56% /home  
-/dev/sda1 306088 33580 256700 12% /var  
-/dev/sda3 297925 47730 234807 17% /var/spool/delegate  
-/dev/sda4 363272 170872 173640 50% /usr  
-/dev/sdb5 297598 2 282228 % /var/tmp  
-/dev/sdb2 1339248 302564 967520 24% /mnt.archive  
-/dev/sdb6 323716 78792 228208 26% /mnt.lib  
-  
-  
-  
-  
-Apparently /tmp and /var/tmp is too big. These  
-directories shall be  
-packed together into one partition when disk space shortage comes.  
-  
-  
-/mnt.lib is also seemed to be, but I plan to install newer TeX and  
-ghostscript archives, so /usr/local/lib may grow about 100 MB or so  
-(since we must use Japanese fonts!).  
-  
-  
-Whole system is backed up by Seagate Tapestore 8000 (Travan TR-4,  
-4G/8G).  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!29. Appendix I: Example III: SPARC Solaris  
-  
-  
-  
-  
-  
-  
-The following section is the basic design used at work for a number of  
-Sun SPARC servers running Solaris 2.5.1 in an industrial development  
-environment. It serves a number of database and cad applications in  
-addition to the normal services such as mail.  
-  
-  
-Simplicity is emphasized here so /usr/lib has not been split  
-off from /usr.  
-  
-  
-This is the basic layout, planned for about 100 users.  
-  
-  
-  
-  
-  
-Drive: SCSI 0 SCSI 1  
-Partition Size (MB) Mount point Size (MB) Mount point  
-0 160 swap 160 swap  
-1 100 /tmp 100 /var/tmp  
-2 400 /usr  
-3 100 /  
-4 50 /var  
-5  
-6 remainder /local0 remainder /local1  
-  
-  
-  
-  
-Due to specific requirements at this place it is at times necessary to  
-have large partitions available on a short notice. Therefore drive 0 is  
-given as many tasks as feasible, leaving a large /local1  
-partition.  
-  
-  
-This setup has been in use for some time now and found satisfactorily.  
-  
-  
-For a more general and balanced system it would be better to swap /tmp  
-and /var/tmp and then move /var to drive 1.  
-  
-  
-  
-----  
-  
-!!30. Appendix J: Example IV: Server with 4 Drives  
-  
-  
-  
-  
-This gives an example of using all techniques described earlier, short of  
-RAID. It is admittedly rather complicated but offers in return high  
-performance from modest hardware. Dimensioning are skipped but reasonable  
-figures can be found in previous examples.  
-  
-  
-  
-  
-  
-Partition sda sdb sdc sdd  
----- ---- ---- ----  
-1 root overview lib news  
-2 swap swap swap swap  
-3 home /usr /var/tmp /tmp  
-4 spare root mail /var  
-  
-  
-  
-  
-Setup is optimised with respect to track positioning but also for  
-minimising drive seeks.  
-  
-  
-If you want DOS or Windows too you will have to use sda1 for this  
-and move the other partitions after that. It will be advantageous to  
-use the swap partitions on sdb2, sdc2 and sdd2 for  
-Windows swap, TEMPDIR and Windows temporary directory under these  
-sessions. A number of other HOWTOs describe how you can make several  
-operating systems coexist on your machine.  
-  
-  
-  
-  
-  
-For completeness a 4 drive example using several types of RAID is  
-also given which is even more complex than the example above.  
-  
-  
-  
-  
-  
-Partition sda sdb sdc sdd  
----- ---- ---- ----  
-1 boot overview news news  
-2 overview swap swap swap  
-3 swap lib lib lib  
-4 lib overview /tmp /tmp  
-5 /var/tmp /var/tmp mail /usr  
-6 /home /usr /usr mail  
-7 /usr /home /var  
-8 / (root) spare root  
-  
-  
-  
-  
-Here all duplicates are parts of a RAID 0 set with two exceptions,  
-swap which is interleaved and home and mail which are implemented  
-as RAID 1 for safety.  
-  
-  
-Note that boot and root are separated: only the boot file with the  
-kernel has to reside within the 1023 cylinder limit. The rest of the  
-root files can be anywhere and here they are placed on the slowest  
-outermost partition. For simplicity and safety the root partition  
-is not on a RAID system.  
-  
-  
-With such a complicated comes an equally complicated fstab file.  
-The large number of partitions makes it important to do the fsck  
-passes in the right order, otherwise the process can take perhaps  
-ten times as long time to complete as the optimal solution.  
-  
-  
-  
-  
-  
-/dev/sda8 / ? ? 1 1 (a)  
-/dev/sdb8 / ? noauto 1 2 (b)  
-/dev/sda1 boot ? ? 1 2 (a)  
-/dev/sdc7 /var ? ? 1 2 (c)  
-/dev/md1 news ? ? 1 3 (c+d)  
-/dev/md2 /var/tmp ? ? 1 3 (a+b)  
-/dev/md3 mail ? ? 1 4 (c+d)  
-/dev/md4 /home ? ? 1 4 (a+b)  
-/dev/md5 /tmp ? ? 1 5 (c+d)  
-/dev/md6 /usr ? ? 1 6 (a+b+c+d)  
-/dev/md7 /lib ? ? 1 7 (a+b+c+d)  
-  
-  
-  
-  
-The letters in the brackets indicate what drives will be active  
-for each fsck entry and pass. These letters are ''not'' present  
-in a real fstab file.  
-All in all there are 7 passes.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!31. Appendix K: Example V: Dual Drive System  
-  
-  
-  
-  
-A dual drive system offers less opportunity for clever schemes but  
-the following should provide a simple starting point.  
-  
-  
-  
-  
-  
-Partition sda sdb  
----- ----  
-1 boot lib  
-2 swap news  
-3 /tmp swap  
-4 /usr /var/tmp  
-5 /var /home  
-6 / (root)  
-  
-  
-  
-  
-If you use a dual OS system you have to keep in mind that many other  
-systems must boot from the first partition on the first drive. A simple  
-DOS / Linux system could look like this:  
-  
-  
-  
-  
-  
-Partition sda sdb  
----- ----  
-1 DOS lib  
-2 boot news  
-3 swap swap  
-4 /tmp /var/tmp  
-5 /usr /home  
-6 /var DOSTEMP  
-7 / (root)  
-  
-  
-  
-  
-  
-  
-  
-Also remember that DOS and Windows prefer there to be just a single  
-primary partition which has to be the first one where it boots from.  
-As Linux can happily exist in logical partitions this is not a big  
-problem.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!32. Appendix L: Example VI: Single Drive System  
-  
-  
-  
-  
-Although this falls somewhat outside the scope of this HOWTO  
-it cannot be denied that recently some rather large drives have  
-become very affordable. Drives with 10 - 20 GB are becoming  
-common and the question often is how best to partition such  
-monsters. Interestingly enough very few seem to have any problems  
-in filling up such drives and the future looks generally quite  
-rosy for manufacturers planning on even bigger drives.  
-  
-  
-Opportunities for optimisations are of course even smaller  
-than for 2 drive systems but some tricks can still be used  
-to optimise track positions while minimising head movements.  
-  
-  
-  
-  
-  
-Partition hda Size estimate (MB)  
----- ------------------  
-1 DOS 500  
-2 boot 20  
-3 Winswap 200  
-4 data The bulk of the drive  
-5 lib 50 - 500  
-6 news 300+  
-7 swap 128 (Maximum size for 32-bit CPU)  
-8 tmp 300+ (/tmp and /var/tmp)  
-9 /usr 50 - 500  
-10 /home 300+  
-11 /var 50 - 300  
-12 mail 300+  
-13 / (root) 30  
-14 dosdata 10 ( Windows bug workaround!)  
-  
-  
-  
-  
-Remember that the dosdata partition is a DOS filesystem that  
-must be the very last partition on the drive, otherwise Windows  
-gets confused.  
-  
-  
-  
-----  
-  
-!! 33. Appendix M: Disk System Documenter  
-  
-  
-  
-  
-  
-  
-This shell script was very kindly provided by Steffen Hulegaard. Run it  
-as root (superuser) and it will generate a summary of your disk setup.  
-Run it after you have implemented your design and compare it with what  
-you designed to check for mistakes. Should your system develop defects  
-this document will also be a useful starting point for recovery.  
-  
-  
-  
-----  
-  
-#!/bin/bash  
-#$Header$  
-#  
-# makediskdoc Collects storage/disk info via df, mount,  
-# /etc/fstab and fdisk. Creates a single  
-# reference file -- /root/sysop/doc/README.diskdoc  
-# Especially good for documenting storage  
-# config/partioning  
-#  
-# 11/11/1999 SC Hulegaard Created just before !RedHat 5.2 to  
-# !RedHat 6.1 upgrade  
-# 12/31/1999 SC Hulegaard Added sfdisk -glx usage just prior to  
-# collapse of my Quantum Grand Prix (4.3 Gb)  
-#  
-# SEE ALSO Other /root/bin/make*doc commands to produce other /root/sysop/doc/README.*  
-# files. For example, /root/bin/makenetdoc.  
-#  
-FILE=/root/sysop/doc/README.diskdoc  
-echo Creating $FILE ...  
-echo ' ' > $FILE  
-echo $FILE >> $FILE  
-echo Produced By $0 >> $FILE  
-echo `date` >> $FILE  
-echo ' ' >> $FILE  
-echo $Header$ >> $FILE  
-echo ' ' >> $FILE  
-echo DESCRIPTION: df -a >> $FILE  
-df -a >> $FILE 2>&1  
-echo ' ' >> $FILE  
-echo DESCRIPTION: df -ia >> $FILE  
-df -ia >> $FILE 2>&1  
-echo ' ' >> $FILE  
-echo DESCRIPTION: mount >> $FILE  
-mount >> $FILE 2>&1  
-echo ' ' >> $FILE  
-echo DESCRIPTION: /etc/fstab >> $FILE  
-cat /etc/fstab >> $FILE  
-echo ' ' >> $FILE  
-echo DESCRIPTION: sfdisk -s disk device size summary >> $FILE  
-sfdisk -s >> $FILE  
-echo ' ' >> $FILE  
-echo DESCRIPTION: sfdisk -glx info for all disks listed in /etc/fstab >> $FILE  
-for x in `cat /etc/fstab | egrep /dev/[[sh] | cut -c -8 | uniq`; do  
-echo ' ' >> $FILE  
-echo $x ============================= >> $FILE  
-sfdisk -glx $x >> $FILE  
-done  
-echo ' ' >> $FILE  
-echo DESCRIPTION: fdisk -l info for all disks listed in /etc/fstab >> $FILE  
-for x in `cat /etc/fstab | egrep /dev/[[sh] | cut -c -8 | uniq`; do  
-echo ' ' >> $FILE  
-echo $x ============================= >> $FILE  
-fdisk -l $x >> $FILE  
-done  
-echo ' ' >> $FILE  
-echo DESCRIPTION: dmesg info on both sd and hd drives >> $FILE  
-dmesg | egrep [[hs]d[[a-z] >> $FILE  
-echo '' >> $FILE  
-echo Done >> $FILE  
-echo Done  
-exit  
-  
-----  
-  
-  
-  
-----  
+Describe [HowToMultiDiskHOWTO] here.