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

FreeBSD Manual Pages

  
 
  

home | help
ATACONTROL(8)		FreeBSD	System Manager's Manual		 ATACONTROL(8)

NAME
     atacontrol	-- ATA device driver control program

SYNOPSIS
     atacontrol	<command> args

     atacontrol	attach channel
     atacontrol	detach channel
     atacontrol	reinit channel
     atacontrol	create type [interleave] disk0 ... diskN
     atacontrol	delete raid
     atacontrol	addspare raid disk
     atacontrol	rebuild	raid
     atacontrol	status raid
     atacontrol	mode device
     atacontrol	info channel
     atacontrol	cap device
     atacontrol	spindown device	[seconds]
     atacontrol	list

DESCRIPTION
     The atacontrol utility is a control program that provides the user	access
     and control to the	FreeBSD	ata(4) subsystem.

     The atacontrol utility can	cause severe system crashes and	loss of	data
     if	used improperly.  Please exercise caution when using this command!

     The channel argument is the ATA channel device (e.g., ata0) on which to
     operate.  The following commands are supported:

     attach   Attach an	ATA channel.  Devices on the channel are probed	and
	      attached as is done on boot.

     detach   Detach an	ATA channel.  Devices on the channel are removed from
	      the kernel, and all outstanding transfers	etc. are returned back
	      to the system marked as failed.

     reinit   Reinitialize an ATA channel.  Both devices on the	channel	are
	      reset and	initialized to the parameters the ATA driver has
	      stored internally.  Devices that have gone bad and no longer
	      respond to the probe, or devices that have physically been
	      removed, are removed from	the kernel.  Likewise are devices that
	      show up during a reset, probed and attached.

     create   Create a type ATA	RAID.  The type	can be RAID0 (stripe), RAID1
	      (mirror),	RAID0+1, SPAN or JBOD.	In case	the RAID has a RAID0
	      component, the interleave	must be	specified in number of sec-
	      tors.  The RAID will be created of the individual	disks named
	      disk0 ...	diskN.

	      Although the ATA driver allows for creating an ATA RAID on disks
	      with any controller, there are restrictions.  It is only possi-
	      ble to boot on an	array if it is either located on a ``real''
	      ATA RAID controller like the Promise or Highpoint	controllers,
	      or if the	RAID declared is of RAID1 or SPAN type;	in case	of a
	      SPAN, the	partition to boot must reside on the first disk	in the
	      SPAN.

     delete   Delete a RAID array on a RAID capable ATA	controller.

     addspare
	      Add a spare disk to an existing RAID.

     rebuild  Rebuild a	RAID1 array on a RAID capable ATA controller.

     status   Get the status of	an ATA RAID.

     mode     Without the mode argument, the current transfer modes of the
	      device are printed.  If the mode argument	is given, the ATA
	      driver is	asked to change	the transfer mode to the one given.
	      The ATA driver will reject modes that are	not supported by the
	      hardware.	 Modes are given like ``PIO3'',	``udma2'',
	      ``udma100'', case	does not matter.

	      Currently	supported modes	are: PIO0, PIO1, PIO2, PIO3, PIO4,
	      WDMA2, UDMA2 (alias UDMA33), UDMA4 (alias	UDMA66), UDMA5 (alias
	      UDMA100) and UDMA6 (alias	UDMA133).  The device name and manu-
	      facture/version strings are shown.

     cap      Show detailed info about the device on device.

     spindown
	      Set or report timeout after which	the device will	be spun	down.
	      To arm the timeout the device needs at least one more request
	      after setting the	timeout.  To disable spindown, set the timeout
	      to zero.	No further actions are needed in this case.

     info     Show info	about the attached devices on the channel.

     list     Show info	about all attached devices on all active controllers.

EXAMPLES
     To	get information	on devices attached to a channel, use the command
     line:

	   atacontrol info ata0

     To	see the	devices' current access	modes, use the command line:

	   atacontrol mode ad0

     which results in the modes	of the devices being displayed as a string
     like this:

	   current mode	= UDMA100

     You can set the mode with atacontrol and a	string like the	above, for
     example:

	   atacontrol mode ad0 PIO4

     The new modes are set as soon as the atacontrol command returns.

     The atacontrol command can	also be	used to	create purely software RAID
     arrays in systems that do NOT have	a "real" hardware RAID card such as a
     Highpoint or Promise card.	 A common scenario is a	1U server such as the
     HP	DL320 G4 or G5.	 These servers contain a SATA controller that has 2
     channels that can contain 2 disks per channel, but	the servers are	wired
     to	only place a single SATA drive on each channel.	 These servers do have
     a "pseudo"	RAID BIOS but it uses a	proprietary format that	is not compat-
     ible with the ata driver, and thus	their RAID bios	must be	switched off.
     Another common scenario would be a	Promise	UDMA100	controller card	that
     did not contain the Fasttrack RAID	BIOS, but did contain 2	UDMA channels.
     1 disk would be attached to one channel and the other disk	would be
     attached to the other channel.  It	is NOT recommended to create such
     arrays on a primary/secondary pair	on a SINGLE channel since the through-
     put of the	mirror would be	severely compromised, the ability to rebuild
     the array in the event of a disk failure would be greatly complicated,
     and if a disk controller electronics failed it could wedge	the channel
     and take both disks in the	mirror offline.	 (which	would defeat the pur-
     pose of having a mirror in	the first place)

     A quick and dirty way to create such a mirrored array on a	new system is
     to	boot off the FreeBSD install CD, do a minimal scratch install, abort
     out of the	post install questions,	and at the command line	issue the com-
     mand:

	   atacontrol create RAID1 ad4 ad6

     then immediately issue a reboot and boot from the installation CD again,
     and during	the installation, you will now see "ar0" listed	as a disk to
     install on, and install on	that instead of	ad4, ad6, etc.

     To	get information	about the status of a RAID array in the	system use the
     command line:

	   atacontrol status ar0

     A typical output showing good health on a RAID array might	be as follows:

	   ar0:	ATA RAID1 subdisks: ad4	ad6 status: READY

     If	a disk drive in	a RAID1	array dies the system will mark	the disk in a
     DOWN state	and change the array status to DEGRADED.  This can ALSO	happen
     in	rare instances due to a	power fluctuation or other event causing the
     system to not shutdown properly.  In that case the	output will look like
     the following:

	   ar0:	ATA RAID1 subdisks: ad4	DOWN status: DEGRADED

     For a mirrored RAID1 system the server WILL ALLOW you to remove a dead
     SATA disk drive (if the drive is in a hot-swap tray) without freezing up
     the system, so you	can remove the disk and	while you are obtaining	a
     replacement the server can	run from the active disk.  The only caveat is
     that if the active	disk is	ad6, the system	most likely will NOT be	able
     to	be rebooted since most systems only support booting from the first
     disk drive.

     To	deactivate the DOWN disk ad6 to	allow for it to	be ejected, use	the
     following:

	   atacontrol detach ata3

     then eject	or remove the disk.  Note that this only works if the 2	disks
     in	the mirror are on separate channels (which is the standard setup for
     1-U servers like the HP DL320).  When the new disk	drive is obtained,
     make sure it is blank, then shut the system down.	At this	point, if the
     system has	a RAID array card like a Highpoint or Promise controller, you
     may then boot it into the BIOS of the card	and use	the manufacturers RAID
     array rebuild utilities to	rebuild	the array.

     If	the system has a pure software array and is not	using a	"real" ATA
     RAID controller, then shut	the system down, make sure that	the disk that
     was still working is moved	to the bootable	position (channel 0 or what-
     ever the BIOS allows the system to	boot from) and the blank disk is
     placed in the secondary position, then boot the system into single-user
     mode and issue the	command:

	   atacontrol addspare ar0 ad6
	   atacontrol rebuild ar0

     If	the disk drive did NOT fail and	the RAID array became unmirrored due
     to	a software glitch or improper shutdown,	then a slightly	different
     process must be followed.	Begin by issuing the detach command (this
     shows the detach for disk ad6, the	primary	master on channel 3):

	   atacontrol detach ata3

     then reboot the system into single-user mode.  (don't just	init the sys-
     tem, reboot it so that both disks get probed) You will probably see TWO
     mirrored RAID arrays appear during	the boot messages, ar0 and ar1.	 Issue
     the command:

	   atacontrol delete ar1
	   atacontrol addspare ar0 ad6

     Now a status command will show the	array rebuilding.

     To	spin down a disk after 30 minutes run

	   atacontrol spindown ad6 1800
	   dd if=/dev/ad6 of=/dev/null count=1

     While any IO on the disk will arm the timer, using	dd(1) on the raw
     device will work in all cases, as when the	disk is	not opened at all.
     You can check the current setting with

	   atacontrol spindown ad6

     You should	not set	a spindown timeout on a	disk with / or syslog logging
     on	it as the disk will be worn out	spinning down and up all the time.

SEE ALSO
     ata(4)

HISTORY
     The atacontrol utility first appeared in FreeBSD 4.6.

AUTHORS
     The atacontrol utility was	written	by Soren Schmidt <sos@FreeBSD.org>.

     This manual page was written by Soren Schmidt <sos@FreeBSD.org>.

FreeBSD	11.1			 June 25, 2008			  FreeBSD 11.1

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=atacontrol&sektion=8&manpath=FreeBSD+7.1-RELEASE>

home | help