Let's take hdisk10 for example. Its PVID is "00cc202e8f4ac23d". As you can see this is a hexadecimal number. If you split it right down the middle and take the first 8 characters, these are the same as the first 8 characters of the servers machine ID.

As you can see, the first 8 characters of the machine ID is the same as the first 8 characters of the PVID. If you have some PVID's on your server that don't match the first 8 characters of the machine ID this means the PVID's were generated on a different machine. This can happen if you export volume groups and move them between servers.

Decoding the second half of the PVID is more tricky. The second half represents a timestamp, but I have never been able to find out any more information than that.

I set out to decode this second half of the PVID in hopes that it would be possible to use it to determine the date/time that a volume group was created.

To figure this out, I wrote a script that would increment the date on the server one day at a time, then clear the PVID and create a new one. By doing this, I am hoping to see how much the PVID number changes in a day's time by subtracting the old PVID from the new one.

Here is the script (NOTE: this changes the date and clears/recreates PVID's so this is NOT something you want to run on your AIX server :)

Again, since the PVID's are just hex numbers you can do math with them. You can see as the date was increased 1 day at a time, and then yesterday's PVID was subtracted from today's PVID, the results were always about 86,400,000. So based on this, we can determine that this timestamp counter increases by 86,400,000 per day. If you do the math, you can figure out that this is 1,000 times per second (60 seconds * 60 minutes * 24 hours * 1000 = 86,400,000).

We also know that this second part of the PVID is 8 hex digits long. The largest 8 digit hex number is FFFFFFFF, which equals 4,294,967,295 in decimal. If we take this number, and divide it by 86,400,000 we get about 49.7. This means that about every 49 days the generated PVID numbers overflow and start over. Based on this, it is unfortunately not possible to determine the date/time a PVID was generated because the numbers wrap around (start over) every 49 days.

Here is the output of another script that generated a new PVID on every date across several months. As you can see every 49 days the timestamp recorded in the last 8 digits fills up and starts over:

The first 8 digits of the PVID match the first 8 digits of the machine id (which can be displayed with uname -m). The last 8 digits of the PVID is a timestamp, but this timestamp overflows every 49.7 days and starts over, so it is not possible to determine the date/time a PVID was generated based on the PVID number.