/etc/path_to_inst file stores device tree (system devices) information which is critical to the kernel. It is registered all physical devices path, instance numbers, and the device instance name (device driver). When Solaris found a device at a specific location on system bus, an entry is added for the instance number and its device instance name. Device tree is persistent across reboots and even across configuration changes. This feature is very important in providing consistency across reboots and hardware changes.
To simplify, /etc/path_to_inst hold device tree information which is physical device path, together with it instance number, and device driver.
Following is a small portion of Sun Fire V490 /etc/path_to_inst file;
"/node@2/pci@8,700000/network@2" 0 "ce"
"/node@2/pci@8,700000/network@3" 1 "ce"
"/node@2/pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w500000e01147a181,0" 0 "ssd"
"/node@2/pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w500000e011479831,0" 1 "ssd"
"/node@2/pci@9,700000/network@2" 2 "ce"
"/node@2/pci@9,600000/network@1" 3 "ce"
"/node@2/pseudo" 0 "pseudo"
"/node@2/scsi_vhci" 0 "scsi_vhci"
"/node@2/scsi_vhci/ssd@g60060e8004767a000000767a00000512" 16 "ssd"
We can decode as;
- /pci@8,700000/network@2" 0 "ce"; Ethernet card in PCI slot 2, ce0
- /pci@8,700000/network@3" 1 "ce"; Ethernet card in PCI slot 3, ce1
- /pci@9,700000/network@2" 2 "ce"; On-board Ethernet, ce2
- /pci@9,600000/network@1" 3 "ce"; On-board Ethernet, ce3
- /pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w500000e01147a181,0" 0 "ssd"; disk slot 0, ssd0
When dealt with Solaris cluster installation, its recommended that all nodes have uniform instance numbering. It will simplify installation and easy maintenance. Assumed that nodes cluster are Sun Fire E4900 and Sun Fire E2900. The I/O instance number would not exactly the same between those two server, since the server have different I/O board. (e.g ce0 on Sun Fire E4900 may be ethernet card installed on PCI slot 1, while Sun Fire E2900 has it on-board). We can re-arrange I/O instance number by manipulate /etc/path_to_inst file instead of shuffle the hardware (I/O card).
Illustration below is re-arrange the ce instance number;"/node@2/pci@8,700000/network@2" 3 "ce"
"/node@2/pci@8,700000/network@3" 2 "ce"
"/node@2/pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w500000e01147a181,0" 0 "ssd"
"/node@2/pci@9,600000/SUNW,qlc@2/fp@0,0/ssd@w500000e011479831,0" 1 "ssd"
"/node@2/pci@9,700000/network@2" 1 "ce"
"/node@2/pci@9,600000/network@1" 0 "ce"
After reconfiguration boot (boot -r), ce instance number will change as defined above.
- /pci@8,700000/network@2" 3 "ce"; Ethernet card in PCI slot 2, ce3
- /pci@8,700000/network@3" 2 "ce"; Ethernet card in PCI slot 3, ce2
- /pci@9,700000/network@2" 1 "ce"; Onboard Ethernet, ce1
- /pci@9,600000/network@1" 0 "ce"; Onboard Ethernet, ce0
(Please revert to previous instance number for the differences).
Likewise, we can re-arrange disk controller (c) and/or disk instances (ssd) as well.
ok,great post
ReplyDelete