Skip to content

docs(storage): add LINSTOR disk preparation guide#411

Open
IvanHunters wants to merge 1 commit intomainfrom
docs/linstor-disk-preparation
Open

docs(storage): add LINSTOR disk preparation guide#411
IvanHunters wants to merge 1 commit intomainfrom
docs/linstor-disk-preparation

Conversation

@IvanHunters
Copy link
Contributor

Summary

Adds comprehensive guide for preparing physical disks for LINSTOR storage pools when they contain old metadata that prevents automatic detection.

The guide covers:

  • Diagnosing storage issues (checking nodes, pools, physical storage)
  • Setting up LINSTOR alias for simplified commands
  • Using talm for disk operations (listing and wiping metadata)
  • Creating ZFS storage pools with multiple disks
  • Troubleshooting common storage setup issues

This documentation helps users resolve disk detection issues during initial cluster setup or when adding new storage nodes to an existing cluster.

Documentation Location

content/en/docs/storage/disk-preparation.md

The guide appears as the first item in the Storage section menu (weight: 5), as it's a prerequisite for other storage operations.

Key Features

  • Simplified commands: Uses LINSTOR alias (linstor instead of full kubectl exec)
  • Talm integration: Uses talm instead of talosctl for declarative disk operations
  • Step-by-step diagnostics: Clear progression from problem identification to resolution
  • Practical troubleshooting: Covers common issues like "Zpool name already used" and permission errors
  • Quick reference: Command table for easy lookup

Related Documentation

  • Links to Talm bootstrap guide
  • Integrates with LINSTOR dedicated network configuration
  • Connects to DRBD tuning and LINSTOR troubleshooting guides

Checklist

  • Documentation follows existing style and format
  • All links and references verified
  • Hugo builds successfully
  • Proper frontmatter with weight ordering (5 - first in Storage section)
  • English language throughout
  • Uses simplified command patterns (alias, talm)

Add comprehensive guide for preparing physical disks for LINSTOR storage pools.
Covers cleaning disk metadata, using talm for disk operations, and creating
ZFS storage pools with troubleshooting section.

Uses simplified LINSTOR alias commands for better readability.

Signed-off-by: ohotnikov.ivan <ohotnikov.ivan@e-queo.net>
@netlify
Copy link

netlify bot commented Feb 4, 2026

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 3f42f52
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/6983ade5e083620008ca62b9
😎 Deploy Preview https://deploy-preview-411--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 4, 2026

Warning

Rate limit exceeded

@IvanHunters has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 12 minutes and 27 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/linstor-disk-preparation

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @IvanHunters, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a new documentation page focused on preparing physical disks for LINSTOR storage pools. The guide aims to help users overcome challenges posed by residual metadata on disks, providing a structured approach to diagnose, clean, and configure storage. It integrates talm for disk management and offers practical troubleshooting steps to ensure successful LINSTOR deployment.

Highlights

  • New Documentation Guide: A comprehensive guide has been added for preparing physical disks for LINSTOR storage pools, especially when old metadata prevents automatic detection.
  • Disk Preparation Process: The guide details how to diagnose storage issues, identify system disks, wipe old metadata using talm, and create ZFS storage pools with multiple disks.
  • Simplified Command Usage: It introduces a linstor alias for easier command execution and leverages talm for declarative disk operations, replacing talosctl in this context.
  • Troubleshooting and Quick Reference: Common issues like 'Zpool name already used' and disks still showing metadata after wiping are addressed, along with a quick reference table for key commands.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • content/en/docs/storage/disk-preparation.md
    • Added a new documentation page titled 'Preparing Disks for LINSTOR Storage Pools'.
    • The guide covers diagnosing LINSTOR storage issues, setting up a LINSTOR alias, checking disk states, and wiping disk metadata using talm.
    • Instructions for creating ZFS storage pools with multiple disks are included.
    • A troubleshooting section addresses common problems such as persistent old metadata, 'Zpool name already used' errors, and permission issues on worker nodes.
    • A quick reference table summarizes essential LINSTOR and talm commands.
    • The document is configured with a weight of 5 to appear as the first item in the Storage section menu.
Activity
  • IvanHunters created this pull request to add new documentation.
  • The PR description provides a detailed summary of the new guide's content, its location, key features, and related documentation.
  • A checklist in the PR description indicates that documentation style, links, Hugo build, frontmatter, language, and command patterns have been verified.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds a comprehensive guide for preparing disks for LINSTOR. The documentation is well-written and covers the process from diagnosis to troubleshooting. I've provided a couple of suggestions to improve clarity and consistency, such as making a command more explicit and ensuring command names are consistent throughout the document. Overall, this is a great addition to the documentation.

Comment on lines +68 to +73
# List LINSTOR satellite pods
kubectl get pod -n cozy-linstor -l app.kubernetes.io/component=linstor-satellite

# Check disk state
kubectl exec -n cozy-linstor <satellite-pod-name> -c linstor-satellite -- \
lsblk -f
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The command kubectl get pod -n cozy-linstor -l app.kubernetes.io/component=linstor-satellite lists all satellite pods, but it doesn't show which node each pod is running on. This makes it difficult for the user to select the correct pod for the node they want to inspect. Adding the -o wide flag will display the node information, making the process clearer and less error-prone.

Suggested change
# List LINSTOR satellite pods
kubectl get pod -n cozy-linstor -l app.kubernetes.io/component=linstor-satellite
# Check disk state
kubectl exec -n cozy-linstor <satellite-pod-name> -c linstor-satellite -- \
lsblk -f
# List LINSTOR satellite pods and the nodes they run on
kubectl get pod -n cozy-linstor -l app.kubernetes.io/component=linstor-satellite -o wide
# From the output, find the pod name on the node you want to inspect.
# Then, check disk state using that pod name:
kubectl exec -n cozy-linstor <satellite-pod-name> -c linstor-satellite -- \
lsblk -f

Comment on lines +227 to +233
| Command | Description |
|---------|-------------|
| `linstor sp l` | List storage pools |
| `linstor ps l` | List available physical storage |
| `linstor ps cdp zfs <node> <disks> --pool-name <name> --storage-pool <name>` | Create ZFS storage pool |
| `talm -f nodes/<node>.yaml wipe disk <disks>` | Wipe disk metadata |
| `talm -f nodes/<node>.yaml get disks` | List disks on node |
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

The quick reference table uses abbreviated linstor commands (e.g., sp l), while the rest of the guide uses full command names (e.g., storage-pool list). This inconsistency can be confusing for users. For better clarity and consistency, it's recommended to use the full command names in the table as well.

Suggested change
| Command | Description |
|---------|-------------|
| `linstor sp l` | List storage pools |
| `linstor ps l` | List available physical storage |
| `linstor ps cdp zfs <node> <disks> --pool-name <name> --storage-pool <name>` | Create ZFS storage pool |
| `talm -f nodes/<node>.yaml wipe disk <disks>` | Wipe disk metadata |
| `talm -f nodes/<node>.yaml get disks` | List disks on node |
| Command | Description |
|---------|-------------|
| `linstor storage-pool list` | List storage pools |
| `linstor physical-storage list` | List available physical storage |
| `linstor physical-storage create-device-pool zfs <node> <disks> --pool-name <name> --storage-pool <name>` | Create ZFS storage pool |
| `talm -f nodes/<node>.yaml wipe disk <disks>` | Wipe disk metadata |
| `talm -f nodes/<node>.yaml get disks` | List disks on node |

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.

1 participant