Мне нужно скопировать относительно большой файл (6 ГБ) на другой сервер. Чтобы обеспечить согласованность, я должен «заблокировать» этот файл и не использовать его во время передачи. Я, конечно, хочу минимизировать время простоя, но перед этим я также хочу оценить время, которое потребуется для этого.
Я вижу 2 решения:
скопируйте файл локально, а затем передайте по сети (локально). Я думаю, это приведет к минимальному времени простоя, но тогда, может быть, я ошибаюсь, так как диск должен будет записывать и читать один и тот же файл одновременно. Даже с учетом этого я не знаю, как оценить время, необходимое для локального копирования файла. Возможно, создание файла размером 6 ГБ и его копирование имело бы смысл, но тогда как я могу это сделать?
скопируйте файл напрямую по сети (scp). Это кажется медленным, поскольку доступ к сети на несколько порядков медленнее, чем запись на диск, но, опять же, возможно, я ошибаюсь.
В целом, как я могу сравнить оба подхода и решить, какой из них лучше для меня?
Честно говоря ... есть несколько способов противостоять этому. У меня есть несколько серверов, на которых мне нужно копировать файлы, которые постоянно используются ... поэтому я планирую "окно обслуживания" в несколько минут, где я могу заблокировать файлы ... создать моментальный снимок (используя dm-snapshot), верните сервер в оперативный режим, а затем сделайте все, что угодно с копией файла, сделанной в момент его создания. Это позволяет мне получить стабильную версию файла ... и вернуть сервис в оперативный режим с минимальным временем простоя. Впоследствии ... я могу удалить снимок, не затрагивая работающий сервер. В вашем случае ... вы можете скопировать файл снимка размером 6 ГБ в удобном для вас темпе по мере необходимости ... не беспокоясь о том, что живая версия файла испортит процесс копирования.
Создайте фиктивный файл для передачи:
time dd if=/dev/urandom of=~/testfile bs=1M count=512
time cp testfile testfile2 #How long it takes to copy
time scp testfile user@otherserver:/path
/dev/urandom
выбран, чтобы избежать повышения от сжатия. SCP должен интерактивно сообщать вам, какова скорость. Базовая математика должна позволять экстраполяцию размеров файлов до 6 гигабайт.
Вы можете использовать утилиту * nix "Просмотр труб" наблюдать за этими процессами. Он предоставит вам индикатор выполнения и приблизительное время передачи.