Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GEOM_FOX(4)		 BSD Kernel Interfaces Manual		   GEOM_FOX(4)

     geom_fox -- GEOM based basic disk multipathing

     To	compile	this driver into the kernel, place the following line in your
     kernel configuration file:

	   options GEOM_FOX

     Alternatively, to load the	driver as a module at boot time, place the
     following line in loader.conf(5):


     The intent	of the geom_fox	framework is to	provide	basic multipathing
     support to	access direct access devices.  Basic in	the above sentence
     should be read as:	geom_fox only provides path failover functionality,
     not load balancing	over the available paths etc.  Using suitable hardware
     like SCSI or FibreChannel disks it	is possible to have multiple (typi-
     cally 2) host bus adapters	access the same	physical disk drive.

     Without a multipathing driver the FreeBSD kernel would probe the disks
     multiple times, resulting in the creation of multiple /dev	entries	for
     the same underlying physical device.  A unique label written in the GEOM
     label area	allows geom_fox	to detect multiple paths.  Using this informa-
     tion it creates a unique device.

     The geom_fox device is subsequently used by the FreeBSD kernel to access
     the disks.	 Multiple physical access paths	ensure that even in case of a
     path failure the FreeBSD kernel can continue to access the	data.

     The geom_fox driver will disallow write operations	to the underlying de-
     vices once	the fox	device has been	opened for writing.

     +o	 geom_fox needs	a label	on the disk as follows in order	to work	prop-

	 "GEOM::FOX	  <--unique--id-->"

	 For the unique	ID 16 bytes are	available.  The	"GEOM::FOX" is the
	 magic to mark a geom_fox device.

	 The actual labelling is accomplished by

	 echo "GEOM::FOX       someid" | dd of=/dev/da2	conv=sync

	 For FibreChannel devices it is	suggested to use the Node World	Wide
	 Name (Node WWN) as this is guaranteed by the FibreChannel standard to
	 be worldwide unique.  The use of the Port WWN not recommended as each
	 port of a given device	has a different	WWN, thereby confusing things.

	 The Node WWN can be obtained from a verbose boot as in	for example

	 isp1: Target 1	(Loop 0x1) Port	ID 0xe8	(role Target) Arrived
	  Port WWN 0x21000004cfc8aca2
	  Node WWN 0x20000004cfc8aca2

	 This Node WWN would then be used like so:

	 echo "GEOM::FOX       20000004cfc8aca2" | dd of=/dev/da2 conv=sync

	 For non-FibreChannel devices you could	for example use	the serial
	 number	of the device.	Regardless of what you use, make sure the la-
	 bel is	unique.

	 Once the labelling has	been performed and assuming the	geom_fox mod-
	 ule is	loaded the kernel will inform you that it has found a new
	 geom_fox device with a	message	similar	to

	 Creating new fox (da2)
	 fox lock 0xfffffc0000fdba20

     +o	 To check which	physical devices match a given geom_fox	device:

	       # geom fox list
	       Geom name:
	       1. Name:
		  Mediasize: 73407865344 (68G)
		  Sectorsize: 512
		  Mode:	r0w0e0
	       1. Name:	da2
		  Mediasize: 73407865856 (68G)
		  Sectorsize: 512
		  Mode:	r0w0e0
	       2. Name:	da6
		  Mediasize: 73407865856 (68G)
		  Sectorsize: 512
		  Mode:	r0w0e0

     +o	 To check the status of	the geom_fox components:

	 # geom	fox status
	    Name  Status  Components     N/A  da2

     GEOM(4), geom(8), gmultipath(8)

     The geom_fox driver depends on the	underlying hardware drivers to do the
     right thing in case of a path failure.  If	for example a hardware driver
     continues to retry	forever, geom_fox is not able to re-initiate the I/O
     to	an alternative physical	path.

     You have to be very sure to provide a unique label	for each of the
     geom_fox devices.	Safety belts are not provided.	For FibreChannel de-
     vices it is suggested to use the Port WWN of the device.  The World Wide
     Name is guaranteed	to be worldwide	unique per the FibreChannel standard.

     The geom_fox driver was written by	Poul-Henning Kamp <>.
     This manual page was written by Wilko Bulte <>.

     The geom_fox framework has	only seen light	testing.  There	definitely
     might be dragons here.

     The name geom_fox is completely obscure.  Just remember that any sly fox
     has multiple exits	from its hole.

     The examples provided are too FibreChannel-centric.

BSD				January	2, 2005				   BSD


Want to link to this manual page? Use this URL:

home | help