Skip to content

Conversation

leftwo
Copy link
Contributor

@leftwo leftwo commented May 2, 2025

Updated the upstairs DTrace struct to include the UUID of the upstairs itself. This is helpful if a disk has more than one sub-volume and you want to determine which output matches what.

Renamed the struct used by DTrace from "Arg" to "DtraceInfo".

Changed many of the dtrace scripts to also print the UUID of the upstairs.

Fixed sled_upstairs_info.d to print the new 3 character state string.

Updated the upstairs DTrace struct to include the UUID of the upstairs itself.
This is helpful if a disk has more than one sub-volume and you want to
determine which output matches what.

Renamed the struct used by DTrace from "Arg" to "DtraceInfo".

Changed many of the dtrace scripts to also print the UUID of the upstairs.

Fixed sled_upstairs_info.d to print the new 3 character state string.
@leftwo
Copy link
Contributor Author

leftwo commented May 5, 2025

I have two disks attached to my instance. One with one sub-volume, and one with two:

EVT22200005 # omdb db disks info ab2e7732-d627-460c-a20a-d3177f31b1b1 2> /dev/null
HOST_SERIAL DISK_NAME INSTANCE_NAME PROPOLIS_ZONE                                            VOLUME_ID                            DISK_STATE 
unknown     double    new-inst      oxz_propolis-server_507d3868-c45e-4f0f-98c6-114361c569cc 4ec4aefb-d79c-4fa8-a588-ad573a807429 attached   
HOST_SERIAL REGION                               DATASET                              PHYSICAL_DISK                        
unknown     a51e7968-5c50-459d-95e9-c8a0ef0c38fa 16f9d017-1729-4c23-99d2-0bf68498fa91 e915ee10-c84e-4000-9e04-41ca319fb449 
unknown     ebf23d85-17db-45a5-96a7-099941f8bb23 51faddbb-9d7b-43cc-8baf-497a36c82110 0daa861b-4792-49e4-9188-aa4e40c134dc 
unknown     862b8455-242b-442c-83f6-6a8086d64575 9649f44b-f23a-4103-967b-1533754350f0 d8ad6147-349e-4c30-8ee8-10dc34565688 
unknown     cde748e1-abf3-4b2b-aa5c-a86ab897d2ce aeec9c06-d328-42c9-92a3-b86b14e142e9 4495aa43-f581-4f1d-b945-1caa435369b4 
unknown     595e6a35-0025-404c-a612-04ef533783d3 bbe041e8-3893-49b9-90f1-2202972f4fd9 fe8539e6-920b-4af2-8b3f-17aebabb62d8 
unknown     1b4f372a-daac-40fc-bfc9-8752760de403 d00b6bad-a231-4643-b4ca-f6cfcfd0a1a1 088f1b53-1b30-4afd-a062-f1bbcf3735f8 
VCR from volume ID 4ec4aefb-d79c-4fa8-a588-ad573a807429
ID                                   BS   SUB_VOLUMES READ_ONLY_PARENT 
ab2e7732-d627-460c-a20a-d3177f31b1b1 4096 2           false            

SUB VOLUME 0
    ID                                   BS   BPE   EC  GEN READ_ONLY 
    ab2e7732-d627-460c-a20a-d3177f31b1b1 4096 16384 800 4   false     
    [fd00:1122:3344:101::13]:19011
    [fd00:1122:3344:101::17]:19013
    [fd00:1122:3344:101::16]:19006

SUB VOLUME 1
    ID                                   BS   BPE   EC  GEN READ_ONLY 
    ab2e7732-d627-460c-a20a-d3177f31b1b1 4096 16384 800 4   false     
    [fd00:1122:3344:101::15]:19011
    [fd00:1122:3344:101::18]:19011
    [fd00:1122:3344:101::12]:19013

EVT22200005 # omdb db disks info 2368c544-d985-40ba-a448-9483e12f0a39 2> /dev/null
HOST_SERIAL DISK_NAME INSTANCE_NAME PROPOLIS_ZONE                                            VOLUME_ID                            DISK_STATE 
unknown     newdisk   new-inst      oxz_propolis-server_507d3868-c45e-4f0f-98c6-114361c569cc 76525245-4f6e-44f4-8bd0-858eb00a7356 attached   
HOST_SERIAL REGION                               DATASET                              PHYSICAL_DISK                        
unknown     d907a026-7696-4b3b-9806-0bdec845b7cf aeec9c06-d328-42c9-92a3-b86b14e142e9 4495aa43-f581-4f1d-b945-1caa435369b4 
unknown     202592bb-13bc-437c-9450-f918262b6040 bbe041e8-3893-49b9-90f1-2202972f4fd9 fe8539e6-920b-4af2-8b3f-17aebabb62d8 
unknown     024d05af-94b5-4395-af73-a3d64cb760c0 d00b6bad-a231-4643-b4ca-f6cfcfd0a1a1 088f1b53-1b30-4afd-a062-f1bbcf3735f8 
VCR from volume ID 76525245-4f6e-44f4-8bd0-858eb00a7356
ID                                   BS  SUB_VOLUMES READ_ONLY_PARENT 
2368c544-d985-40ba-a448-9483e12f0a39 512 1           false            

SUB VOLUME 0
    ID                                   BS  BPE    EC  GEN READ_ONLY 
    2368c544-d985-40ba-a448-9483e12f0a39 512 131072 480 19  false     
    [fd00:1122:3344:101::12]:19006
    [fd00:1122:3344:101::18]:19003
    [fd00:1122:3344:101::15]:19005

Some example dtrace output shows:

  PID     UUID  SESSION DS0 DS1 DS2   NEXT_JOB  DELTA CONN   ELR   ELC   ERR   ERN
28621 ab2e7732 e378ebbe ACT ACT ACT      19932   1432    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      20342    410    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      21765   1423    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      22170    405    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      24629   2459    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      25751   1122    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0
28621 ab2e7732 e378ebbe ACT ACT ACT      27146   1395    3     0     0     0     0
28621 ab2e7732 084a16d9 ACT ACT ACT       1286      0    3     0     0     0     0
28621 2368c544 9cd2d8b5 ACT ACT ACT      24315      0    3     0     0     0     0

All have the same PID, you can see there are two UUIDs for the two disks, then each has a unique session id.

@leftwo leftwo marked this pull request as ready for review May 5, 2025 18:32
@leftwo leftwo requested review from mkeeter, faithanalog and jmpesp May 5, 2025 18:32
*/
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Arg {
pub struct DtraceInfo {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RIP to Arg, but this is much more clear

@leftwo leftwo merged commit 939c81f into main May 5, 2025
17 checks passed
@leftwo leftwo deleted the alan/dtrace-needs-more-uuid branch May 5, 2025 19:09
jmpesp added a commit to oxidecomputer/omicron that referenced this pull request Aug 11, 2025
Pick up the following propolis PRs:

- Bump crucible rev to latest (oxidecomputer/propolis#922)
- Added block_size for file backends in propolis_server (workers is optional) (oxidecomputer/propolis#917)

Pick up the following crucible PRs:

- Snapshots existing already are ok! (oxidecomputer/crucible#1759)
- Less verbose logging (oxidecomputer/crucible#1756)
- Remove unused `Vec<JoinHandle>` (oxidecomputer/crucible#1754)
- Split "check reconciliation state" from "start reconciliation" (oxidecomputer/crucible#1732)
- Improve `ClientIoTask` start logic (oxidecomputer/crucible#1731)
- Use data-bearing enum variants pattern in negotiation (oxidecomputer/crucible#1727)
- Make Downstairs stoppable (oxidecomputer/crucible#1730)
- Don't log every region's metadata (oxidecomputer/crucible#1729)
- Compute reconciliation from `ClientMap` instead of three clients (oxidecomputer/crucible#1726)
- Make Offline -> Faulted transition happen without reconnecting (oxidecomputer/crucible#1725)
- Remove `WaitActive` state during negotiation (oxidecomputer/crucible#1722)
- Add explicit `UpstairsState::Disabled` (oxidecomputer/crucible#1721)
- Print version on startup for pantry and agent (oxidecomputer/crucible#1723)
- Update test mem to also show physical space used by regions. (oxidecomputer/crucible#1724)
- Add AllStopped command and endpoint for downstairs status (oxidecomputer/crucible#1718)
- Update tests to honor REGION_SETS env if provided. (oxidecomputer/crucible#1720)
- Fix panic in `set_active_request` when client is in Stopping(Replacing) state (oxidecomputer/crucible#1717)
- DTrace updates (oxidecomputer/crucible#1715)
jmpesp added a commit to oxidecomputer/omicron that referenced this pull request Aug 11, 2025
Pick up the following propolis PRs:

- Bump crucible rev to latest (oxidecomputer/propolis#922)
- Added block_size for file backends in propolis_server (workers is optional) (oxidecomputer/propolis#917)

Pick up the following crucible PRs:

- Snapshots existing already are ok! (oxidecomputer/crucible#1759)
- Less verbose logging (oxidecomputer/crucible#1756)
- Remove unused `Vec<JoinHandle>` (oxidecomputer/crucible#1754)
- Split "check reconciliation state" from "start reconciliation" (oxidecomputer/crucible#1732)
- Improve `ClientIoTask` start logic (oxidecomputer/crucible#1731)
- Use data-bearing enum variants pattern in negotiation (oxidecomputer/crucible#1727)
- Make Downstairs stoppable (oxidecomputer/crucible#1730)
- Don't log every region's metadata (oxidecomputer/crucible#1729)
- Compute reconciliation from `ClientMap` instead of three clients (oxidecomputer/crucible#1726)
- Make Offline -> Faulted transition happen without reconnecting (oxidecomputer/crucible#1725)
- Remove `WaitActive` state during negotiation (oxidecomputer/crucible#1722)
- Add explicit `UpstairsState::Disabled` (oxidecomputer/crucible#1721)
- Print version on startup for pantry and agent (oxidecomputer/crucible#1723)
- Update test mem to also show physical space used by regions. (oxidecomputer/crucible#1724)
- Add AllStopped command and endpoint for downstairs status (oxidecomputer/crucible#1718)
- Update tests to honor REGION_SETS env if provided. (oxidecomputer/crucible#1720)
- Fix panic in `set_active_request` when client is in Stopping(Replacing) state (oxidecomputer/crucible#1717)
- DTrace updates (oxidecomputer/crucible#1715)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants