Это отлично работает:
sed '1,/abc/s/abc/xyz/' file.txt
Можно сократить до:
sed '1,/abc/s//xyz/' file.txt
Совместим с GNU и BSD:
sed '1,/[0-9][0-9]*/s///' <filename >newfilename
Вот что я сделал, разделив диск между VM1 и VM2
Создать общую файловую систему
qemu-img create -f raw sharetest.img
virsh attach-disk VM1 <full-path-to-sharetest.img> vdb
mount /dev/vdb /mnt
На этом этапе вы можете читать/записывать файлы на общий диск, используя /mnt.Чтобы переместить эту файловую систему, выполните следующие действия
umount /mnt
для размонтирования файловой системы с ВМ1 virsh detach-disk VM1 vdb
virsh attach-disk VM2 <full-path-to-sharetest.img> vdb
mount /dev/vdb /mnt
Это работает, я много раз перемещал файл sharetest.img между VM1 и VM2.
Просто из любопытства я решил посмотреть, что произойдет, если я прикреплю файл sharetest.img к обеим виртуальным машинам одновременно. Я думал, что прикреплю его к обеим виртуальным машинам, а затем просто нужно будет согласовать команды монтирования/размонтирования. К сожалению, хотя я смог использовать virsh attach-disk
на обеих виртуальных машинах, чтобы подключить его, это вызвало ошибку с SELinux, и KVM действительно запутался, не позволил гостевой ОС увидеть диск, даже если он указан диск как отстраненный. Даже после отключения диска от обеих систем, если я попытаюсь снова подключить диск, он скажет, что vdb уже используется.
Таким образом, если вы тщательно следите за тем, чтобы диск был одновременно подключен только к одной виртуальной машине, совместное использование диска между виртуальными машинами — это нормально.
Проблема в том, что если система active
испортит базу данных, то ваша passive
система не принесет никакой пользы.