16.04LTS에서 저하 된 RAID1 부팅을 활성화하는 방법은 무엇입니까?


14

이전 우분투 버전에서는 루트 파일 시스템이 성능 저하 된 어레이에있을 때 시스템을 자동으로 부팅 할 수 있도록 추가 BOOT_DEGRADED=true했습니다 /etc/initramfs-tools/conf.d/mdadm. 이것은 더 이상 16.04 LTS에서 작동하지 않는 것 같습니다.

문서 ( https://help.ubuntu.com/lts/serverguide/advanced-installation.html )는 오래된 것으로 보입니다. sudo dpkg-reconfigure mdadm더 이상 저하 된 부팅을 허용하지 않고 bootdegraded=true커널 인수도 더 이상 작동하지 않는 것 같습니다. 루트 파일 시스템 배열이 저하되면 시스템은 항상 initramfs로 부팅됩니다. 여기 mdadm -IRs에서 시스템을 부팅 할 수 있습니다.

16.04LTS에서 루트 파일 시스템이 저하 된 RAID1 어레이에있을 때 자동 부팅을 활성화하려면 어떻게합니까?


실제 구성 버그가 수정하는 것 같지만 당 문서는 여전히 잘못된 bugs.launchpad.net/serverguide/+bug/1310162 지금과 같은 저하 된 RAID로 부팅 할 수 있도록 내가 이해로까지 여분의 구성이 더 이상 필요하지 않습니다으로 (18.04).
Diego

답변:


9

언급 된 버그는 mdadm 3.3-2ubuntu7에 나타나며 3.4-2에서 수정되었습니다.

yakkety (16.10) 3.4-4의 최신 mdadm 릴리스에는 이미 수정 프로그램이 포함되어 있으며 16.10에서는 사용할 수 있지만 16.04LTS에서는 아직 사용할 수 없습니다.

따라서 16.04LTS의 mdadm을 수동으로 업그레이드했습니다.

wget http://launchpadlibrarian.net/275652884/mdadm_3.4-4_amd64.deb
sudo dpkg -i mdadm_3.4-4_amd64.deb

내가 확인하려면

  • 컴퓨터를 종료
  • 디스크 중 하나를 분리했습니다
  • 컴퓨터를 켜십시오

콘솔 관찰 : 성능 이 저하 된 RAID 어레이에서 부팅이 작동합니다 !

버그 : https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1635049 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=784070


방금 검색 한 1 주일을 해결했습니다. 감사합니다.
Fahad Ahammed

그 버그는 우울한 읽기입니다.
Kevin Lyda

1

근본 원인은 /usr/share/initramfs-tools/scripts/local-top/mdadm스크립트가없는 것 같습니다 -Debian-8에서는 mdadm패키지에 포함되어 있지만 Ubuntu-16.04의 동일한 패키지에서 손실되었습니다. ;-(

그래서, 더티 핵 버전을 만들고 다시 만든 후에 initramfs내 테스트 Ubuntu-16.04 LTS 서버는 RAID1 어레이의 유일한 두 번째 HDD를 사용하여 완전히 부팅 할 수있었습니다.

#!/bin/sh
# 2016-07-13 andrey@kopeyko.ru - missed mdadm script for Ubuntu-16.04
# see debian8_host:/usr/share/initramfs-tools/scripts/local-top/mdadm for full version

MDADM=/sbin/mdadm 
. /scripts/functions

echo "===>"
cat /proc/mdstat
echo "===>"
log_begin_msg "Assembling all MD arrays"
if $MDADM --assemble --scan --run --auto=yes
then
  log_success_msg "assembled all arrays."
else
  log_warning_msg "failed to assemble all arrays, attempting individual starts"
  for dev in $(cat /proc/mdstat | grep md | cut -d ' ' -f 1)
  do
    log_begin_msg "attempting mdadm --run $dev"
    if $MDADM --run $dev; then
      log_success_msg "started $dev"
    else
      log_failure_msg "failed to start $dev"
    fi
  done
fi
log_end_msg
echo "===>"
cat /proc/mdstat
echo "===>"

sleep 5

# TODO: run mdadm --readwrite /dev/mdN
# if array is in 'auto-read-only' mode

1
이 스크립트를 넣은 /usr/share/initramfs-tools/scripts/local-top/mdadm다음로 설치하십시오 update-initramfs -k all -u. 그러나 경고가 생성됩니다. 줄 case ${1:-} in prereqs) echo "multipath"; exit 0;; esac앞에 놓인 경고를 비활성화합니다 . /scripts/functions.
Kevin Lyda

예, 경고를 생성하지만이 경고는 무해합니다. 해킹 functions은 부작용으로 인해 좋은 생각이 아니라고 생각합니다. 따라서 나는이 경고를 무시합니다.
Andrey Kopeyko

0

16.04와 동일한 문제가 발생했습니다. RAID 배열이 성능 저하 모드에서 활성화되기를 거부했습니다.

다음은 쉬운 해결 방법입니다.

  1. 새 파일을 만듭니다 : / etc / initramfs-tools / scripts / init-premount / delay_mounting (+ x를 설정해야 함)

더하다

수면 20 (또는 원하는 초)

  1. 새 파일을 만듭니다 : / etc / initramfs-tools / scripts / local-top / mdadm (+ x를 설정해야 함)

다음을 추가하십시오 (/ dev / md0, / dev / md1 및 / dev / md2가있는 경우 강제 시작 배열)

mdadm --run / dev / md0
mdadm --run / dev / md1
mdadm --run / dev / md2

그때

update-initramfs -k all -u 이면 모두 설정되었습니다.

14.04에는 1) 만 필요하지만 두 가지를 모두 해치지는 않습니다. 다음과 같은 경고 메시지가 표시 될 수 있습니다.

mdadm : / dev / md0 어레이를 실행하지 못했습니다 : 장치 또는 리소스 사용 중

/ dev / md0이 활성화되어 있기 때문에 필요할 때만 --run을 실행하여 더 똑똑한 스크립트를 작성할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.