AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 411286
Accepted
Goff
Goff
Asked: 2017-12-17 09:41:35 +0800 CST2017-12-17 09:41:35 +0800 CST 2017-12-17 09:41:35 +0800 CST

Linux raid 重启后消失

  • 772

我在 Linux 中的故障排除能力并不令人印象深刻,正如您所知。另一方面,我可以很好地遵循指示。我有一个带有 Linux raid 的 Linux 服务器。它运行良好,大约半年没有任何问题,但后来我遇到了电源故障,从那以后一直遇到同样的问题。重建 raid 后,我所有的文件都还在,所以这是一件好事。当我重新启动服务器时,raid 设备 md0 消失了。

pi@pinas:~ $ cat /proc/mdstat 
Personalities : 
unused devices: <none>

pi@pinas:~ $ ls /dev/md*
pi@pinas:~ $ 

我在这里发现了一个似乎对其他人有所帮助的问题,但我尝试了它并没有帮助。我还查看了其他几个网站都说类似的话。我使用 webmin 创建 raid 并且 mdadm.conf “看起来” ok。我不知道我是否在互联网上搜索正确的东西,或者即使我正在查看正确的日志文件。有没有人有任何想法?

提前致谢。

***编辑 1

root@pinas:/home/pi# service mdadm start
Failed to start mdadm.service: Unit mdadm.service is masked.

我想知道 mdadm 服务是否正在运行。该进程当前在系统上未处于活动状态,我不知道如何判断它是否配置为在启动时启动,如何启动它或将其配置为在启动时启动。

***编辑 2

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

我找到了这个。我不知道这是否很糟糕,但它看起来很可疑。这是应该的吗?他们都没有说启用,我认为他们应该。有任何想法吗?

***编辑 3

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

dpkg-reconfigure mdadm
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Processing triggers for initramfs-tools (0.120+deb8u3) ...

我运行了@telcoM 建议的命令,这是输出。我也尝试过重新安装这些命令,但输出仍然相同。

我已经尝试在网上查看其他几个类似名称的踏板,但到目前为止我还没有发现任何似乎有用的东西。我认为问题与启动时未启动的服务有关,但我对 Linux 服务的经验不足,不知道如何修复它。@roaima 建议这是 initramfs 的问题,但我不知道如何检查或更正。有没有人有任何想法?

***编辑 4

CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/0  metadata=1.2 UUID=d3434dfc:2fb4792e:0b64f806:67e35ee3 name=raspberrypi:0
ARRAY /dev/md/0  metadata=1.2 UUID=40fb937f:870c7c13:46774666:87445bc5 name=pinas:0

这是我的 mdadm.conf 文件的输出。这很有趣,因为第一个列出的数组没有正确的名称......

linux raid
  • 4 4 个回答
  • 20669 Views

4 个回答

  • Voted
  1. Ellison
    2018-11-22T21:30:28+08:002018-11-22T21:30:28+08:00

    在遇到同样的问题后,这个食谱对我有用。找遍了整个网络试图找到答案,最后遇到了这个,仍然没有帮助。

    我看到的问题是多方面的。

    1. mdadm 将设备文件重新分配/dev/md0到/dev/md127下次重新启动时。所以你不能只使用 fstab 中的设备文件。我最终从创建的文件系统中使用了 UUID。

    2. 几乎所有网络上的 RAID 驱动器设置教程都显示了使用驱动器设备文件创建 RAID 设备,如下所示:

      mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
      

      相反,我使用了分区设备文件,如下所示:

      mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
      

      第二种形式需要使用gdisk或在每个磁盘上正确创建分区fdisk。我使用gdisk并将其分配为 type fd00,这是一个 raid 分区。

    3. 有很多关于需要更新的讨论/etc/mdadm/mdadm.conf。这是错误的。我故意删除了那个文件。这不是必需的。(见下文)

    这就是它的全部。完整的食谱如下...


    fd00使用Linux RAID类型的一个分区对每个驱动器进行分区:

    root@teamelchan:~# gdisk /dev/sda
    Command (? for help): n
    Partition number (1-128, default 1):
    First sector (2048-3907029134, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): fd00
    Changed type of partition to 'Linux RAID'
    
    Command (? for help): p
    Disk /dev/sda: 3907029168 sectors, 1.8 TiB
    Model: ST2000DM001-1ER1
    Sector size (logical/physical): 512/4096 bytes
    Disk identifier (GUID): F81E265F-2D02-864D-AF62-CEA1471CFF39
    Partition table holds up to 128 entries
    Main partition table begins at sector 2 and ends at sector 33
    First usable sector is 2048, last usable sector is 3907029134
    Partitions will be aligned on 2048-sector boundaries
    Total free space is 0 sectors (0 bytes)
    
    Number Start (sector) End (sector) Size Code Name
    1
    2048 3907029134 1.8 TiB FD00 Linux RAID
    
    Command (? for help): w
    
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!
    
    Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/sda.
    The operation has completed successfully.
    

    现在您应该在 /dev 中看到磁盘设备和分区设备

    root@teamelchan:~# ls /dev/sd[a-d]*
    /dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1
    

    现在使用分区设备文件,而不是磁盘设备,使用 mdadm 创建您选择的 RAID

    root@teamelchan:~# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
    mdadm: chunk size defaults to 512K
    mdadm: /dev/sda1 appears to contain an ext2fs file system
    size=471724032K mtime=Sun Nov 18 19:42:02 2018
    mdadm: /dev/sda1 appears to be part of a raid array:
    level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
    mdadm: /dev/sdb1 appears to be part of a raid array:
    level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
    mdadm: /dev/sdc1 appears to be part of a raid array:
    level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
    mdadm: /dev/sdd1 appears to contain an ext2fs file system
    size=2930265540K mtime=Sun Nov 18 23:58:02 2018
    mdadm: /dev/sdd1 appears to be part of a raid array:
    level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
    Continue creating array? y
    mdadm: Defaulting to version 1.2 metadata
    mdadm: array /dev/md0 started.
    

    现在检查/dev/disk是否有任何 UUID 与您的新/dev/md0RAID 关联。应该没有。

    root@teamelchan:~# ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2
    

    创建新的文件系统,然后你现在应该有一个 UUID/dev/md0

    root@teamelchan:~# mkfs.ext4 -F /dev/md0
    mke2fs 1.44.1 (24-Mar-2018)
    Creating filesystem with 2685945088 4k blocks and 335745024 inodes
    Filesystem UUID: 7bd945b4-ded9-4ef0-a075-be4c7ea246fb
    Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
    2560000000
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (262144 blocks): done
    Writing superblocks and filesystem accounting information: done
    

    瞧,就是这样。

    root@teamelchan:~# ls -l /dev/disk/by-uuid
    total 0
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
    lrwxrwxrwx 1 root root 9 Nov 22 04:43 7bd945b4-ded9-4ef0-a075-be4c7ea246fb -> ../../md0
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
    lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2
    

    修改 /etc/fstab 并为新 RAID 添加挂载 确保使用 UUID,而不是设备文件。

    root@teamelchan:~# cat /etc/fstab
    UUID=e79571b6-eb75-11e8-acb0-e0d55e117fa5 / ext4 defaults 0 0
    UUID=4777-FB10 /boot/efi vfat defaults 0 0
    /swap.img none
    swap sw 0 0
    UUID=7bd945b4-ded9-4ef0-a075-be4c7ea246fb /md0/tweets ext4 auto 0 0
    

    在这里,看/etc/mdadm/mdadm.conf 不 不需要。

    root@teamelchan:~# ls -l /etc/mdadm
    total 0
    

    重启

    root@teamelchan:~# reboot
    Connection to 192.168.0.131 closed by remote host.
    Connection to 192.168.0.131 closed.
    

    RAID 已挂载,但 mdadm 已将设备文件从 重命名md0为md127

    好在我们使用了 UUID 而不是实际的设备文件。

    root@teamelchan:~# df /md0/tweets
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/md127 10658016696 73660 10120737636 1% /md0/tweets
    

    看 md0 从 /dev 消失了

    root@teamelchan:~# ls /dev/md*
    /dev/md127
    
    /dev/md:
    

    而已。现在我正在享受运行速度超过 600 MB/秒的 10 TB RAID0

    root@teamelchan:~# hdparm -tT /dev/md127
    
    /dev/md127:
    Timing cached reads: 26176 MB in 1.99 seconds = 13137.47 MB/sec
    Timing buffered disk reads: 1878 MB in 3.00 seconds = 625.13 MB/sec
    
    • 8
  2. telcoM
    2017-12-17T11:28:12+08:002017-12-17T11:28:12+08:00

    您/proc/mdstat表示没有加载任何 RAID 特性(即 RAID1、RAID5 等),因此甚至没有尝试激活 RAID 集。

    Failed to start mdadm.service: Unit mdadm.service is masked.
    

    此消息表明mdadm.service已以最强大的方式禁用:不会显式尝试启动该服务,即使有其他东西依赖于该服务,也不会启动它。

    与 roaima 链接的问题一样,尝试以 root 身份运行这些命令:

    dpkg-reconfigure mdadm    # Choose "all" disks to start at boot
    update-initramfs -u       # Updates the existing initramfs
    

    第一个将重新配置mdadm软件包,并应检测所有 RAID 集,并让您选择在启动时自动激活哪些 RAID 集:通常“全部”是一个很好的答案。mdadm.service如果我理解正确的话,这也应该注意被掩盖。

    完成后,第二个命令将更新您的 initramfs,因此更新的配置文件也将在您的 initramfs 中更新,并且将在启动的最早阶段执行的脚本将获得存在 RAID 集的信息应该被激活。

    • 3
  3. roaima
    2017-12-20T13:54:04+08:002017-12-20T13:54:04+08:00

    至少部分问题是/dev/md/0您的mdadm conf. 你需要先解决这个问题。

    然后让您的阵列运行,最后您可以按照新 RAID 阵列不会自动组装,导致启动问题的说明进行操作-

    dpkg-reconfigure mdadm # Choose "all" disks to start at boot
    update-initramfs -u # Updates the existing initramfs 
    
    • 0
  4. Best Answer
    Goff
    2019-06-03T16:21:21+08:002019-06-03T16:21:21+08:00

    该服务没有启动,因为它被屏蔽了。这是我如何找到如何揭开它的方法。下一个问题是 mdadm-raid 服务没有启动 raid。这就是我让raid在启动时开始的方式。往下看“Mon Jul 31, 2017 7:49 pm”找到相关帖子。这可能不是最好的解决方案,但在 10 次重新启动后,raid 仍然每次都开始。我非常感谢那些试图回答这个问题的人所做的努力。现在我只需要整理提供的其他服务。但这是另一天的问题。

    • 0

相关问题

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

  • 需要一些系统调用

  • 物理链路 (Phys) 和 HDD 插槽

  • astyle 不会更改源文件格式

  • 通过标签将根文件系统传递给linux内核

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    JSON数组使用jq来bash变量

    • 4 个回答
  • Marko Smith

    日期可以为 GMT 时区格式化当前时间吗?[复制]

    • 2 个回答
  • Marko Smith

    bash + 通过 bash 脚本从文件中读取变量和值

    • 4 个回答
  • Marko Smith

    如何复制目录并在同一命令中重命名它?

    • 4 个回答
  • Marko Smith

    ssh 连接。X11 连接因身份验证错误而被拒绝

    • 3 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Marko Smith

    systemctl 命令在 RHEL 6 中不起作用

    • 3 个回答
  • Marko Smith

    rsync 端口 22 和 873 使用

    • 2 个回答
  • Marko Smith

    以 100% 的利用率捕捉 /dev/loop -- 没有可用空间

    • 1 个回答
  • Marko Smith

    jq 打印子对象中所有的键和值

    • 2 个回答
  • Martin Hope
    EHerman JSON数组使用jq来bash变量 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux 日期可以为 GMT 时区格式化当前时间吗?[复制] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC 如何复制目录并在同一命令中重命名它? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve “root”用户的文件权限如何工作? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey 如何下载软件包而不是使用 apt-get 命令安装它? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao 为什么目录 /home、/usr、/var 等都具有相同的 inode 编号 (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg —list-keys 命令在将私钥导入全新安装后输出 uid [未知] 2017-11-26 18:26:02 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve