summaryrefslogtreecommitdiffstats
path: root/sys/modules/geom
Commit message (Collapse)AuthorAgeFilesLines
* Instead of allocating memory for all the keys at device attach,pjd2011-04-211-0/+1
| | | | | | | | | | | create reasonably large cache for the keys that is filled when needed. The previous version was problematic for very large providers (hundreds of terabytes or serval petabytes). Every terabyte of data needs around 256kB for keys. Make the default cache limit big enough to fit all the keys needed for 4TB providers, which will eat at most 1MB of memory. MFC after: 2 weeks
* MFgraid/head:mav2011-03-242-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new RAID GEOM class, that is going to replace ataraid(4) in supporting various BIOS-based software RAIDs. Unlike ataraid(4) this implementation does not depend on legacy ata(4) subsystem and can be used with any disk drivers, including new CAM-based ones (ahci(4), siis(4), mvs(4), ata(4) with `options ATA_CAM`). To make code more readable and extensible, this implementation follows modular design, including core part and two sets of modules, implementing support for different metadata formats and RAID levels. Support for such popular metadata formats is now implemented: Intel, JMicron, NVIDIA, Promise (also used by AMD/ATI) and SiliconImage. Such RAID levels are now supported: RAID0, RAID1, RAID1E, RAID10, SINGLE, CONCAT. For any all of these RAID levels and metadata formats this class supports full cycle of volume operations: reading, writing, creation, deletion, disk removal and insertion, rebuilding, dirty shutdown detection and resynchronization, bad sector recovery, faulty disks tracking, hot-spare disks. For Intel and Promise formats there is support multiple volumes per disk set. Look graid(8) manual page for additional details. Co-authored by: imp Sponsored by: Cisco Systems, Inc. and iXsystems, Inc.
* Bring in geom_sched, support for scheduling disk I/O requestsluigi2010-04-125-0/+30
| | | | | | | | | | | | in a device independent manner. Also include an example anticipatory scheduler, gsched_rr, which gives very nice performance improvements in presence of competing random access patterns. This is joint work with Fabio Checconi, developed last year and presented at BSDCan 2009. You can find details in the README file or at http://info.iet.unipi.it/~luigi/geom_sched/
* Add gmountver, disk mount verification GEOM class.trasz2010-01-162-0/+9
| | | | | | | | Note that due to e.g. write throttling ('wdrain'), it can stall all the disk I/O instead of just the device it's configured for. Using it for removable media is therefore not a good idea. Reviewed by: pjd (earlier version)
* Add missing reference to GPT support.ivoras2009-07-051-0/+1
| | | | | Submitted by: Paul B. Mahol onemda at gmail.com Approved by: re (kib)
* g_part_ebr.c includes opt_geom.hmarcel2009-05-301-0/+1
|
* Import the gvinum work that have been done during and after Summer of Code 2007.lulf2009-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The work have been under testing and fixing since then, and it is mature enough to be put into HEAD for further testing. A lot have changed in this time, and here are the most important: - Gvinum now uses one single workerthread instead of one thread for each volume and each plex. The reason for this is that the previous scheme was very complex, and was the cause of many of the bugs discovered in gvinum. Instead, gvinum now uses one worker thread with an event queue, quite similar to what used in gmirror. - The rebuild/grow/initialize/parity check routines no longer runs in separate threads, but are run as regular I/O requests with special flags. This made it easier to support mounted growing and parity rebuild. - Support for growing striped and raid5-plexes, meaning that one can extend the volumes for these plex types in addition to the concat type. Also works while the volume is mounted. - Implementation of many of the missing commands from the old vinum: attach/detach, start (was partially implemented), stop (was partially implemented), concat, mirror, stripe, raid5 (shortcuts for creating volumes with one plex of these organizations). - The parity check and rebuild no longer goes between userland/kernel, meaning that the gvinum command will not stay and wait forever for the rebuild to finish. You can instead watch the status with the list command. - Many problems with gvinum have been reported since 5.x, and some has been hard to fix due to the complicated architecture. Hopefully, it should be more stable and better handle edge cases that previously made gvinum crash. - Failed drives no longer disappears entirely, but now leave behind a dummy drive that makes sure the original state is not forgotten in case the system is rebooted between drive failures/swaps. - Update manpage to reflect new commands and extend it with some examples. Sponsored by: Google Summer of Code 2007 Mentored by: le Tested by: Rick C. Petty <rick-freebsd2008 -at- kiwi-computer.com>
* Add the EBR scheme. The EBR scheme supports the Extended Boot Recordsmarcel2009-02-082-0/+13
| | | | | | | | found inside extended partitions and used to create logical partitions. At this time write/modify support is not (yet) present. The EBR and MBR schemes both check the parent scheme. The MBR will back-off when nested under another MBR, whereas the EBR only nests under a MBR.
* Add support for PC-9800 partition tables.marcel2008-03-282-0/+13
|
* Instead of making a single geom_part.ko module, make a modulemarcel2008-03-236-15/+66
| | | | | for each partitioning scheme. The gpart code is currently non- optional.
* Remove makefiles for geom_apple and geom_gpt. These are non-existentmarcel2008-03-022-16/+0
| | | | for while.
* Add geom_part module.marcel2008-03-022-0/+19
|
* Remove WARNS from here and compile with default kernel flags.ru2008-02-211-1/+0
|
* geom_lvm(4) is now known as geom_linux_lvm(4).thompsa2008-02-201-8/+0
|
* Rename geom_lvm(4) to geom_linux_lvm(4).thompsa2008-02-201-1/+1
| | | | Requested by: des, phk
* Rename geom_lvm(4) to geom_linux_lvm(4).thompsa2008-02-201-0/+8
| | | | Requested by: des, phk
* Hook geom_lvm(4) up to the build.thompsa2008-02-112-0/+9
|
* Add GEOM VIRSTOR module to the build.pjd2007-10-261-0/+1
|
* Bring in the GEOM Virtualisation class, which allows to create huge GEOMpjd2007-09-231-0/+8
| | | | | | | | | providers with limited physical storage and add physical storage as needed. Submitted by: Ivan Voras Sponsored by: Google Summer of Code 2006 Approved by: re (kensmith)
* First cut at GEOM based multipath. This is an active/passive{/passive...}mjacob2007-02-272-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arrangement that has no intrinsic internal knowledge of whether devices it is given are truly multipath devices. As such, this is a simplistic approach, but still a useful one. The basic approach is to (at present- this will change soon) use camcontrol to find likely identical devices and and label the trailing sector of the first one. This label contains both a full UUID and a name. The name is what is presented in /dev/multipath, but the UUID is used as a true distinguishor at g_taste time, thus making sure we don't have chaos on a shared SAN where everyone names their data multipath as "Fred". The first of N identical devices (and N *may* be 1!) becomes the active path until a BIO request is failed with EIO or ENXIO. When this occurs, the active disk is ripped away and the next in a list is picked to (retry and) continue with. During g_taste events new disks that meet the match criteria for existing multipath geoms get added to the tail end of the list. Thus, this active/passive setup actually does work for devices which go away and come back, as do (now) mpt(4) and isp(4) SAN based disks. There is still a lot to do to improve this- like about 5 of the 12 recommendations I've received about it, but it's been functional enough for a while that it deserves a broader test base. Reviewed by: pjd Sponsored by: IronPort Systems MFC: 2 months
* Don't recurse into geom_apple and geom_gpt. They have been movedmarcel2007-02-071-3/+1
| | | | into the g_part framework.
* Hook up gjournal bits to the build.pjd2006-10-311-0/+1
| | | | Sponsored by: home.pl
* Add Makefile for geom_journal kernel module.pjd2006-10-311-0/+10
| | | | Sponsored by: home.pl
* A GEOM cache can speed up read performance by sending fixed sizeru2006-10-062-0/+9
| | | | | | | | | | read requests to its consumer. It has been developed to address the problem of a horrible read performance of a 64k blocksize FS residing on a RAID3 array with 8 data components, where a single disk component would only get 8k read requests, thus effectively killing disk performance under high load. Documentation will be provided later. I'd like to thank Vsevolod Lobko for his bright ideas, and Pawel Jakub Dawidek for helping me fix the nasty bug.
* Don't expect that 'device random' will compile in those files into thepjd2006-06-091-0/+3
| | | | | | | kernel for us. If random is compiled as kernel module, geom_bde.ko cannot be loaded. Reported by: Michal Suszko <michal@dry.pl>
* Connect new GELI files to the build.pjd2006-06-051-1/+9
| | | | Supported by: Wheel Sp. z o.o. (http://www.wheel.pl)
* Dike out WARNS from kernel module makefiles. Kernels and modulesru2006-05-301-1/+0
| | | | | | | use a different mechanism for setting warning flags, and using WARNS here only has null or negative effects. Submitted by: bde (I think it means "submitted")
* Check rootvnode variable to see if we still want to ask for passphrase onpjd2006-02-111-1/+1
| | | | | | boot. Other methods just don't work properly. MFC after: 3 days
* Since we want a vinum geom created anytime the module loads, movele2005-11-241-1/+1
| | | | | | | | | | | the geom creation to a seperate init function and ignore the tasting. The config is now parsed only in the vinumdrive geom, which hopefully fixes the problem, that the drive class tasted before the vinum class had a chance, for good. Also restore the behaviour that the module can be loaded at boot time and on a running system.
* Finally bring in what was produced during Google SoC 2005:le2005-11-191-1/+2
| | | | | | | | | Add functions to rename objects and to move a subdisk from one drive to another. Obtained from: Chris Jones <chris.jones@ualberta.ca> Sponsored by: Google Summer of Code 2005 MFC in: 1 week
* Add -DINVARIANT_SUPPORT -DINVARIANTSfjoe2005-09-291-1/+1
| | | | (to commented out CFLAGS, used for debugging).
* Add geom_bsd_enc.c which we've been wanting to be in geon_bsd.imura2005-09-201-1/+1
| | | | Reviewed by: phk
* Shuffle around the order in which the components are compiled.le2005-08-261-1/+1
| | | | | | | | | This way, the VINUMDRIVE class is loaded before the VINUM class, but since geom does the tasting for newly arrived classes last-in-first-out, the VINUM class tastes first. This removes the need to call gv_parse_config() in the drive taste path.
* Add NTFS labeling function.takawata2005-08-261-0/+1
| | | | Reviewed by:pjd
* Add code for Ext2FS and ReiserFS labels recognition.pjd2005-08-121-0/+2
| | | | | | Submitted by: Stanislav Sedov <stas@310.ru> PR: kern/84638 MFC after: 1 week
* Connect GEOM_ELI class to the build.pjd2005-07-271-0/+1
| | | | MFC after: 1 week
* Add GEOM_ELI class which provides GEOM providers encryption.pjd2005-07-271-0/+9
| | | | | | | | For features list and usage see manual page: geli(8). Sponsored by: Wheel Sp. z o.o. http://www.wheel.pl MFC after: 1 week
* Connect GZERO to the build.pjd2005-07-251-1/+2
| | | | MFC after: 3 days
* Add a very simple and small GEOM class - ZERO.pjd2005-07-251-0/+8
| | | | | | | | | | | It creates very huge provider (41PB) /dev/gzero. On BIO_READ request it zero-fills bio_data and on BIO_WRITE it does nothing. You can also set kern.geom.zero.clear sysctl to 0 to do nothing even for BIO_READ. I'm using it for performance testing where it is very helpful. MFC after: 3 days
* Connect SHSEC GEOM class to the build.pjd2005-01-111-0/+1
|
* Introduce a new GEOM class - SHSEC. It provides sharing secret betweenpjd2005-01-111-0/+8
| | | | | | | | the given providers. Without even one of the configured components there should be no way to get the secret. Supported by: WHEEL Sp. z o.o. http://www.wheel.pl
* Do not compile in zlib.c. Add a dependency on module instead.fjoe2004-09-081-1/+1
|
* Connect RAID3 GEOM class to the build.pjd2004-08-161-0/+1
|
* Introduce GEOM RAID3 class, i.e. kernel module, which implements RAID3pjd2004-08-161-0/+9
| | | | | | | transformation and graid3(8) userland utility, which can be used for configuration. No manual page yet, sorry. Hardware provided by: Daniel Seuffert
* Add geom_uzip -- geom class that implements read-only compressed disks.fjoe2004-08-132-0/+10
| | | | | Currently supports cloop V2.0 disk compression format. May support more formats in future.
* Due to popular demand, hook up geom_vinum to the build.le2004-08-071-0/+1
|
* Connect GEOM_MIRROR class to the build.pjd2004-07-301-0/+1
|
* Add GEOM_MIRROR class which provide RAID1 functionality and has many usefulpjd2004-07-301-0/+9
| | | | | | | | features. The gmirror(8) utility should be used for control of this class. There is no manual page yet, but I'm working on it with keramida@. Many useful tests provided by: simon (thank you!) Some ideas from: scottl, simon, phk
* Introduce GEOM_LABEL class.pjd2004-07-022-0/+12
| | | | | | | | | | | | | | | | | | | | | | | This class is used for detecting volume labels on file systems: UFS, MSDOSFS (FAT12, FAT16, FAT32) and ISO9660. It also provide native labelization (there is no need for file system). g_label_ufs.c is based on geom_vol_ffs from Gordon Tetlow. g_label_msdos.c and g_label_iso9660.c are probably hacks, I just found where volume labels are stored and I use those offsets here, but with this class it should be easy to do it as it should be done by someone who know how. Implementing volume labels detection for other file systems also should be trivial. New providers are created in those directories: /dev/ufs/ (UFS1, UFS2) /dev/msdosfs/ (FAT12, FAT16, FAT32) /dev/iso9660/ (ISO9660) /dev/label/ (native labels, configured with glabel(8)) Manual page cleanups and some comments inside were submitted by Simon L. Nielsen, who was, as always, very helpful. Thanks!
* Add a module directory for geom_vinum.le2004-06-121-0/+11
|
OpenPOWER on IntegriCloud