New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Expose board-serial and board-product through SMBios #21
Conversation
👍 You are me and I claim $5(I have an iddenticalish patch queued in my own branch, I just hadn't gotten around to submitted a PR for it). Don't you need a patch for smbios.h to define the type 2 structure & SMBIOS_TYPE_BOARD_INFORMATION? |
Very nice. I'm alredy hit this problem then generation cluster_id in pacemaker based on uuid. |
We use a simple algorithm for generating our own skus amd so far it hasn't Manufacturer + most specific serial.
Haven't encountered a manufacturer where a uniquely identifing serial isn't On Tuesday, June 10, 2014, Vasiliy Tolstov notifications@github.com wrote:
|
@Vanders you're absolutely right, i added the missing file. Must have forgotten it when I rebased my branches to do the PR |
ping @ipxe-devel for review :) |
Just curious, why do you need these variables defined with names instead of using the generic SMBIOS variable expansion, which is like this:
|
@robinsmidsrod that could definitely be used, but since we're already exposing chassis smbios attributes for convenience, why not expose board level smbios attributes? The board level attributes are more specific to the actual node being booted, and will reduce confusion / make it easier to access them. Not everyone will know how to load figure out the smbios string to use, and this isn't really documented anywhere that i can see. |
The only reference I can find to reading arbitrary attributes from smbios is from gpxe docs: http://etherboot.org/wiki/commandline And I only found this because I knew specifically what to look for. |
@mcb30 thoughts on exposing board level serial / product since we already do for chassis, and board info is more useful on blade nodes? |
On 11/06/14 21:30, Dale Hamel wrote:
All of the SMBIOS information is already exposed via constructed ${smbios/2.7.0} # this is your "board-serial" Since all of the information can already be accessed, the question There is a non-zero cost of naming a setting; each named setting costs So, to merge this patch, I need to know that it will be sufficiently Michael |
I'm clearly biased, as I proposed this patch. To reiterate my rational though: the chassis level product and serial are The purpose of reading the smbios info at boot time is probably to identity This chassis information is useless at it's intended purpose on blade Supplying the board level smbios information is more likely to achieve this Perhaps it's a slippery slope allowing any named smbios attributes at all? How can we really demonstrate if a naming a particular attribute can On Thursday, June 12, 2014, ipxe-devel notifications@github.com wrote:
|
I just did a tiny check with VirtualBox, and both 2.7.0 and 2.5.0 do contain useful values (same as product/serial). Is it possibly that we could swap chassis product/serial to board product/serial for the named settings? Other than that, it might also be useful to include more examples on the smbios wiki page so that information like the one mentioned above is easier to find. It might also be useful to link to the SMBIOS reference manual. |
With the patch:
Without the patch:
So we're talking about around 49 bytes total for this patch. I agree that we should document reading the SMBios attrs better. As a separate suggestion, perhaps moving the ipxe.org to github.io would make it easier to PR against the documentation, so it's not just a few people writing the docs? |
The reason the editing capability on the iPXE wiki is limited is to avoid getting documentation written in a bunch of different styles (for the main docs). You can register an account there and write an appnote page detailing the useful SMBIOS values and then ask for it to be linked from one of the main pages. I do agree that contributing documentation should be easier than it is today. |
On 12/06/14 16:42, Robin Smidsrød wrote:
That would potentially break backwards compatibility, so I'm reluctant I'm convinced by the argument that ${board-serial} is sufficiently Does anyone object to having just ${board-serial} included as a named Michael |
On 12/06/14 16:53, Dale Hamel wrote:
I've generally found that collaboratively-written documentation tends to Michael |
@ipxe-devel my only argument for board-product is that it is useful during automated intake, which is what we use iPXE for. However, it is possible to collect this data later in the process, so it's not essential to have at boot time. The board-manufacturer is not likely to vary from chassis manufacturer, just because of how most large companies tend to perform their orders for servers - that's why it was not proposed. I can see your point when it comes to community docs, but my suggestion to move ipxe.org to github.io would still keep control within the hands of selected gatekeepers, such as yourself, and have the added benefit that changes like this one could be submitted with accompanying documentation, which might help keep the docs complete / up-to-date. But, this isn't the right venue for such a discussion :) I'm updating the patch to remove board-product, and squash the commits. |
Size after removing board-product:
So it adds 19 bytes over upstream. |
That is the beauty of the gethub.io proposal, unlike a wiki where everyone On Thu, Jun 12, 2014 at 10:33 AM, Michael Brown mcb30@ipxe.org wrote:
Ben Hildred |
On 12/06/14 17:41, Dale Hamel wrote:
Thanks; have applied: http://git.ipxe.org/ipxe.git/commitdiff/7fe0735 Michael |
On 12/06/14 17:50, Ben Hildred wrote:
This is a good idea in theory, but my experience is generally that it
Those should have stopped; a couple of weeks ago I restricted the wiki
And there's no way I'm abandoning that feature! :) Michael |
@ipxe-devel there is probably still a way to do the errornumber auto generation. Workflow would go like this: 0.) Move site to static github.io (possibly using something like jekyll to make changes easier) Or, just pull merge normal PRs like normal, then do add the updated error code stuff after merging master. Otherwise, keep the old servers around just for error code /linenumber lookup. Either way, hosting off of github.io should reduce your hosting costs and improve reliability. I can help you with the migration (or even just a mockup) if you like - love the iPXE project and would be happy to contribute in any way that I can. I don't think that github.io and error number lookup are mutually exclusive. |
On 12/06/14 18:08, Dale Hamel wrote:
The error pages are not static; they get generated on demand. The list make bin/errors bin-x86_64-linux/errors bin-i386-efi/errors ....etc and then processed into an SQLite database using contrib/errdb/errdb.pl. It's a very slick process involving absolutely no manual intervention on
Hosting costs are zero since I already own a physical server in
Thank you for the offer; I do appreciate it. I have to say that I'm Michael |
Fair enough, thanks for your hard work et al. -Dale On Thu, Jun 12, 2014 at 1:24 PM, ipxe-devel notifications@github.com
|
This change exposes the SMBios attributes for the board serial and board product.
This enables for unique identification of Blade nodes, where the chassis serial will be the same as all other blades in the chassis.
We currently use these attributes at Shopify to uniquely identify nodes at boot time, where we can't depend on other attributes such as UUID to exist.
It's a relatively minor change, and expands the existing functionality by exposing additional standard SMBios attributes, which are particularly useful on blade nodes / where there are multiple nodes per chassis.