Звучит так, как будто вы хотите соединить первые три поля. Затем вы должны изменить первые два разделителя, join
на новое 1-е поле, а затем восстановить разделители:
join -t, -j1 -a1 -a2 -o 0 1.2 1.3 2.2 2.3 -e " MISSING" \
<(sed 's/, /\x02/;s/, /\x02/' 1.txt) <(sed 's/, /\x02/;s/, /\x02/' 2.txt) \
| sed 's/\x02/, /g'
return
1, abc, 123, 456, 789, 000, 000
2, lmn, 123, 456, 789, MISSING, MISSING
3, pqr, 123, 456, 789, 000, 000
9, opq, 123, MISSING, MISSING, 000, 000
Служба не запускалась, так как была замаскирована. здесь вот как я нашел, как это разоблачить. следующая проблема заключалась в том, что служба рейда mdadm -не запускала рейд. вот так я заставил рейд запускаться при загрузке. Посмотрите на «Пн, 31 июля 2017 г., 7 :49 вечера», чтобы найти соответствующий пост. Это может быть не лучшее решение, но после 10 перезагрузок рейд все равно запускается каждый раз. Я ценю усилия людей, которые пытались ответить на эту тему. Теперь мне просто нужно разобраться с другими предоставляемыми услугами. но это проблема другого дня.
Этот рецепт помог мне после той же проблемы. Просмотрел всю сеть, пытаясь найти ответ, и, наконец, наткнулся на это, и до сих пор не помогает.
Проблема, как я вижу, многогранна.
mdadm переназначает файлы устройств с /dev/md0
на что-то вроде /dev/md127
при следующей перезагрузке. Таким образом, вы не можете просто использовать файл устройства в файле fstab. В итоге я использовал UUID из созданной файловой системы.
Почти во всех руководствах по настройке дисков 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
и присвоил ему тип fd00
, который является разделом рейда.
Много говорят о необходимости обновления /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
Теперь создайте RAID по вашему выбору с помощью mdadm, используя файлы разделов устройств, а не дисковые устройства
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/md0
RAID. Их не должно быть.
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
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:
Вот именно. Теперь я наслаждаюсь своим 10-терабайтным RAID0, который работает со скоростью более 600 МБ/с
.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