= Hardware descriptions = [[TracNav]] The profiles contain also the description of the node's hardware. This includes the number of CPU chips, the number of cores on each chip, the number and type of each hard disk or RAID controller, the location and many others. [[TOC(inline)]] == Annotation structures == Almost all hardware definitions include a generic {{{structure_annotation}}}, which is made of the following fields: * {{{name}}} the product name * {{{type}}} the type of product * {{{model}}} * {{{manufacturer}}} * {{{version}}} * {{{chipset}}} * {{{serialnumber}}} * {{{arch}}} tipically, i386 or x86_64 * {{{bus}}} * {{{clock}}} clock frequency * {{{lang}}} language * {{{location}}} physical location All these fields are optional, so you can use them in any context you need. For instance, you might want to describe a Sun XFire 4100 server with {{{arch}}} x86_64, {{{manufacturer}}} Sun and {{{model}}} XFire 4100. == RAM definitions == RAM structures include, also * {{{size}}} capacity of the RAM chip * {{{data_rate}}} an optional and mostly unused field. Ideally, you should define one RAM entry per RAM module the node has. For instance, if you have 4 modules, 2GB each, you should set {{{ "/hardware/ram" = list (nlist ("capacity", 2*GB, # More annotation fields here), nlist ("capacity", 2*GB, # More annotation fields), nlist ("capacity", 2*GB, # More annotation fields), nlist ("capacity", 2*GB, # More annotation fields)); }}} == CPU definition == CPU structures describe one CPU chip. * {{{speed}}} clock speed. Hey, isn't this redundant with {{{clock}}} from {{{structure_annotation}}}? * {{{cores}}} amount of cores on this chip. Defaults to 1. CPUs are described as a list, with at least one element. Your nodes will always have at least one CPU, right? {{{ "/hardware/cpu" = list (nlist (... }}} == Network cards definition == This structure is meant for Ethernet cards, if another type of structure was needed we might have to re-think this. * {{{hwaddr}}} the MAC address * {{{driver}}} * {{{driverrpms}}} * {{{pxe}}} a boolean indicating if the interface supports PXE * {{{boot}}} a boolean indicating if this is the interface we want to boot from * {{{maxspeed}}} can someone from CERN clarify? These are included inside {{{/hardware/cards/nic}}} and indexed by device name (eth0, eth1...). == RAID controllers and hard disks == They are all modelled inside {{{/hardware/cards}}}, please see [https://twiki.cern.ch/twiki/bin/view/FIOgroup/TsiCDBPhysicalDevices the full description] Please note that "normal" hard disks, even if they are IDE or SATA (as you see them on your desktop) should be described '''here'''. == Deprecated description for hard disks == A much less accurate description is still available, but is strongly discouraged. It is described here for completeness, and kept for backwards compatibility. Please don't use it for new profiles. Hard disks are described as members of {{{/hardware/harddisks}}}, but keep no information on their exact port or the RAID controller they belong to. All they have is their interface (IDE, SATA, SAS, SCSI...), their size and their name, from the operating system's point of view. This is, "sda", "hda"...