Làm thế nào để tôi đổi tên một mảng đột kích mdadm?


23

Vì một số lý do, khi tôi cố đổi tên một mảng đột kích mdadm thành một tên văn bản, sự thay đổi không có.

Tôi đã thử lời khuyên từ câu hỏi serverfault này , nhưng không có kết quả.

~$ mdadm --version
mdadm - v3.1.4 - 31st August 2010

~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
  Creation Time : Tue Sep 27 08:32:32 2011
     Raid Level : raid1
     Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
  Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
    Update Time : Sun Oct  2 17:59:37 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : omicron:0  (local to host omicron)
           UUID : 75c4a555:482aecd0:ade70dfc:1547926a
         Events : 17

Number   Major   Minor   RaidDevice State
   0       8       80        0      active sync   /dev/sdf
   1       8       96        1      active sync   /dev/sdg

~$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0

~$ sudo mdadm --assemble /dev/md/alpha --update=name /dev/sd[gf]
mdadm: /dev/md/alpha has been started with 2 drives.

~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Sep 27 08:32:32 2011
     Raid Level : raid1
     Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
  Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
    Update Time : Sun Oct  2 18:06:11 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : omicron:0  (local to host omicron)
           UUID : 75c4a555:482aecd0:ade70dfc:1547926a
         Events : 17

Number   Major   Minor   RaidDevice State
   0       8       80        0      active sync   /dev/sdf
   1       8       96        1      active sync   /dev/sdg

~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf[0] sdg[1]
      1953513424 blocks super 1.2 [2/2] [UU]

md126 : active (auto-read-only) raid1 sdd[0] sde[1]
      1953513424 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb[0] sda[1]
      976762496 blocks [2/2] [UU]

unused devices: <none>

Như bạn có thể thấy, tên vẫn được báo cáo omicron:0và vẫn có thể truy cập thông qua tệp thiết bị cũ. Việc thử sudo mdadm --detail /dev/md/alphasẽ hoạt động và báo cáo tương tự, sai, đặt tên cho đến lần khởi động lại tiếp theo, khi nó ngừng hoạt động.

Có vẻ như khi tìm ra tên để đặt, mdadm bị lẫn lộn và chỉ tạo tập tin thiết bị thay thế.


QUA MỘT BÊN

Có cách nào để làm cho mdadm buộc cập nhật phần tên của siêu khối (tức là đặt rõ ràng tên bạn muốn mảng có) mà không cần phải tạo lại siêu khối một cách rõ ràng không? (tức là sudo mdam --zero-superblock /dev/sd[fg]; sudo mdadm --create /dev/md/alpha --raid-devices=2 --level=1 --assume-clean --name=alpha /dev/sd[fg])


Vấn đề là sau khi khởi động lại, mặc dù đã thêm ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=c66a267...vào mdadm.conf, tệp thiết bị được đặt tên sẽ biến mất và được thay thế bằng một định dạng chuẩn. (/ dev / md125 hoặc tương tự)

Làm thế nào tôi có thể làm cho một mảng mdadm được đổi tên giữ tên của nó? - Tức là - Làm cách nào để tạo ubfox duy trì các tệp thiết bị giữa các lần khởi động?

Câu trả lời:


19

Bạn phải đặt cho nó cái tên thực sự --name=giống như:

sudo mdadm --assemble /dev/md/alpha --name=newname --update=name /dev/sd[gf]

Để có hành vi nhất quán khi khởi động lại, bạn phải sử dụng cùng tên trong đối số --name so với phần cuối của thiết bị. Ở đây sẽ là: sudo mdadm --assemble / dev / md / alpha --name = alpha --update = name / dev / sd [gf]

Xem bài viết của Khassad dưới đây để được giải thích đầy đủ.


1
Một bản cập nhật nhỏ cho dòng lệnh này, để rõ ràng, giống như một boob tôi đã nhập tên ban đầu của mảng sau '--update ='. sudo mdadm --assemble /dev/md/alpha --name={newname} --update=name /dev/sd[gf] Hy vọng điều đó có ý nghĩa hoặc làm cho nó rõ ràng hơn ....
thảm họa

Xin chào, sau khi ban hành lệnh # sudo mdadm --assemble / dev / md127 --name = md0 --update = name / dev / sd [ab] Tôi nhận được mdadm: / dev / sda đang bận - bỏ qua mdadm: / dev / sdb là bận rộn - bỏ qua bất kỳ khó khăn? Tất nhiên, tôi đã vượt qua mảng đầu tiên!
dao cạo7

2
@ dao cạo7mdadm --stop --scan md127
Daniel Dinnyes

12

Cách để Ubuntu duy trì thay đổi tên trên các bốt là cập nhật initramfs của bạn. Sau khi cập nhật tên mảng và mdadm.conf, bạn cần đưa ra lệnh sau:

sudo update-initramfs -u

Toàn bộ quá trình:

sudo mdadm --stop /dev/md125
sudo mdadm --assemble /dev/md/alpha --name=alpha --update=name /dev/sd[fg]
sudo mdadm -Db /dev/md/alpha

Lệnh thứ ba sẽ trả về một cái gì đó như:

ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=5b024352:3a940335:233aa23f:5c6b2a1f

Dán kết quả vào /etc/mdadm/mdadm.conf (thay thế dòng cũ). Hoặc thực hiện:

sudo mdadm -Db /dev/md/alpha >> /etc/mdadm/mdadm.conf

Lần chạy tiếp theo:

sudo update-initramfs -u

Cuối cùng, khởi động lại.

Cuộc thảo luận này rất hữu ích .


8

Câu trả lời đầu tiên của pille và NN hoạt động.

Mẹo ở đây là khi bạn không chỉ định --nametùy chọn, việc đổi tên duy nhất được thực hiện bằng cách mdadmgán tên mảng từ số thiết bị đã phân bổ. Trong câu hỏi này là 0 nên tên mảng mới là 0.

Vì bạn chỉ định tên thiết bị ("alpha" ở đây) để sử dụng trong lệnh lắp ráp, nó sẽ tạo và sử dụng tên thiết bị này. Nhưng tại autostart mdadmtạo ra một thiết bị dựa trên tên mà nó nhìn thấy trong siêu khối, đó là 0 trong trường hợp này, vì vậy tên thiết bị bạn đã chỉ định trong lệnh lắp ráp bị mất.

Để làm cho tên của bạn thay đổi dính và mạch lạc, bạn phải sử dụng cùng tên trong phần cuối của tên thiết bị và trong tên mảng mới của bạn. Trong trường hợp này, đối với thiết bị "alpha", bạn sẽ phải sử dụng dòng lệnh này:

mdadm --assemble /dev/md/alpha --name=alpha --update=name /dev/sd[gf]

Bạn cũng có thể thay đổi tên máy chủ, để làm điều này, bạn phải khai báo rõ ràng bằng -name=<hostname>:<array_name>cú pháp.

Điều này có thể hữu ích ví dụ sau khi thay đổi tên máy.


2

Có vẻ như câu trả lời bạn tìm kiếm có ngay trong trang mdadm man

[create, build, grow]
      -N, --name=
          Set  a name for the array.  This is **currently only effective when creat‐
          ing an array** with a version-1 superblock, or an  array  in  a  DDF  con‐
          tainer.   The  name is a simple textual string that can be used to iden‐
          tify array components when assembling.  If name is needed but not speci‐
          fied, it is taken from the basename of the device that is being created.
          e.g. when creating /dev/md/home the name will default to home.

và để lắp ráp

       -N, --name=
          Specify the name of the array to assemble.  **This must be the  name  that
          was  specified  when  creating the array**.  It must either match the name
          stored in the superblock exactly, or it  must  match  with  the  current
          homehost prefixed to the start of the given name.

Điều này giải thích tại sao thuộc tính name không bị dính sau khi được đặt. Nếu bạn đã làm cho nó hoạt động, xin vui lòng ack với một bình luận mà câu trả lời đã lừa cho bạn. Ngoài ra, bạn luôn có thể tạo liên kết tượng trưng bằng quy tắc udev và UUID của mảng làm mỏ neo.

Tôi không thấy điểm khi thêm tên giả vào /etc/mdadm.conf, bạn đã sử dụng UUID là tên mảng chính tắc. Thêm một biến khác, mà bạn thấy phù hợp để thay đổi, chỉ là bảo trì không cần thiết và yêu cầu sự cố, ví dụ như mảng không khởi động.

Ngoài những quan sát này, nơi tốt nhất để hiểu lý do tại sao bạn không thể cập nhật tên khi chạy là ping danh sách gửi thư đột kích linux.


1

Sau khi bạn đổi tên, bạn đã thử cập nhật mdadm.confchưa?

 mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm.conf

0

mdadm có một lỗi khi khối lượng đột kích được tạo ra bên trong với một khoảng trắng trong tên của chúng. Các ổ đĩa này sẽ không được gắn chính xác do lỗi định dạng trong tệp /etc/mdadm/mdadm.conf được tạo. Bạn cần đổi tên chúng ở đó nhưng sẽ không bền. Vì vậy, đổi tên tên nội bộ là cần thiết ... nhưng nó không được hỗ trợ trên tất cả các bộ điều khiển RAID chặn siêu dữ liệu của chúng và không hỗ trợ tùy chọn tên. Tôi không thấy cách đổi tên các ổ đĩa này (ngay cả khi chúng được tham chiếu bên trong bởi UUID của chúng, các tên được sử dụng bởi Linux; Windows ở phía đối diện không có lỗi như vậy và gắn kết hoàn toàn các ổ RAID chứa không gian trong tên của chúng)!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.