coreos / coreos/ignition

Ignition does not support nested RAID

Open
#581 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/usability kind/bug kind/friction
Dominant language
Go
Stars
974
Forks
296
Avg merge
6d 14h
Merged PRs (30d)
9

Description

Issue by @ajeddeloh


Issue Report

Bug

Container Linux Version
$ cat /etc/os-release
NAME="Container Linux by CoreOS"
ID=coreos
VERSION=1506.0.0+2017-08-28-1705
VERSION_ID=1506.0.0
BUILD_ID=2017-08-28-1705
PRETTY_NAME="Container Linux by CoreOS 1506.0.0+2017-08-28-1705 (Ladybug)"
ANSI_COLOR="38;5;75"
HOME_URL="https://coreos.com/"
BUG_REPORT_URL="https://issues.coreos.com"
COREOS_BOARD="amd64-usr"
Environment

Any

Expected Behavior

Ignition can create nested raids

Actual Behavior

Ignition fails to create nested raids.

Reproduction Steps

Use this CLC to create an instance.

storage:
  disks:
    - device: /dev/vdb
      wipe_table: true
      partitions:
       - label: root11
         number: 1
         size: 256MiB
         start: 0
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
       - label: root21
         number: 2
         size: 256MiB
         start: 0
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
       - label: root12
         number: 3
         size: 256MiB
         start: 0
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
       - label: root22
         number: 4
         size: 256MiB
         start: 0
         type_guid: be9067b9-ea49-4f15-b4f6-f36f8c9e1818
  raid:
    - name: "inner1"
      level: "raid1"
      devices:
        - "/dev/vdb1"
        - "/dev/vdb2"
    - name: "inner2"
      level: "raid1"
      devices:
        - "/dev/vdb3"
        - "/dev/vdb4"
    - name: "outer"
      level: "raid0"
      devices:
        - "/dev/md/inner1"
        - "/dev/md/inner2"
  filesystems:
    - name: "ROOT"
      mount:
        device: "/dev/md/outer"
        format: "ext4"
        create:
          options:
            - "-L"
            - "ROOT"
    - name: "NOT_ROOT"
      mount:
        device: "/dev/vda9"
        format: "ext4"
        create:
          options:
            - "-L"
            - "WASTELAND"
Other Information

createRaids creates a list of devices it needs to make the arrays and waits for those devices before it creates the arrays. In the case of nested raid this includes devices it has yet to create.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at createRaids and trace how RAID devices are collected and waited on. Reproduce the supplied CLC; done means the inner arrays are created before the outer array, allowing the filesystem configuration to proceed.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.