Почему делает мВ (1) объекты копии если разрешение переместиться отклоненный?

Да, на самом деле я делаю это для своей персональной тестовой среды (у меня есть общедоступный сайт, который переходит к QEMU-KVM VM на моем домашнем ПК).

В основном, если VM имеет доступ к сети затем, Вы просто имеете дело с проблемой маршрутизации.

У меня есть несколько поддельных компаний "отделы", созданные в моем VM для тестирования различных типов установок, каждая среда добирается, ее собственное зависание подсети конкретного virbr* устройство (virbr1, оказывается, виртуальный интерфейс к VM веб-сайта, но Вы - интерфейсная нумерация, будет очевидно отличающимся.

В той точке Вы могут рассматривать его тот же способ, которым Вы были бы, если Вы собирались сделать NAT к некоторой реальной машине, к которой только гипервизор имел доступ к сети и мог достигнуть IP-адресом.

У меня есть свои 80-е порта передачи маршрутизатора интернета к гипервизору и гипервизору просто порт NAT 80 к частному IP, связанному с KVM:

-A PREROUTING -d 192.168.1.9/32 -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.1.9:80

192.168.1.9 IP-адрес моего гипервизора, 10.0.1.9 IP-адрес VM, я работаю на апаче.

7
25.08.2014, 09:03
1 ответ

Короткий ответ - нет.

mv определен для:

выполнения действий, эквивалентных rename () функция

rename () не копирует контент, он просто переименовывает его на диске . Это полностью атомарная операция, которая никогда не выходит из строя частично.

Однако это не все. Этот эффект может произойти при попытке переместить файл между устройствами: в этом случае невозможно выполнить переименование в файловой системе. Чтобы получить эффект перемещения, mv сначала копирует источник в место назначения, а затем удаляет источник. Фактически, mv / mnt / a / X / mnt / b / Y по существу эквивалентно cp / mnt / a / X / mnt / b / Y && rm / mnt / a / X . Это единственный способ перемещения файлов между устройствами.

Когда mv не имеет разрешения на удаление этого исходного файла, будет сообщено об ошибке, но в этот момент копия уже была создана. Этого невозможно избежать, предварительно проверив разрешения из-за возможных условий гонки, когда разрешения меняются во время операции.

На самом деле нет никакого способа предотвратить это возможное событие, кроме как вообще сделать невозможным перемещение файлов между устройствами. Выбор разрешить mv между любым источником и местом назначения упрощает задачу в общем случае за счет странного (но неразрушающего) поведения в этих необычных случаях.

По этой же причине перемещение большого файла на одном устройстве происходит намного быстрее, чем перемещение его на другое.

14
27.01.2020, 20:15

Теги

Похожие вопросы