Вопрос о том, как настроить мои виртуальные машины на внутренних/внешних дисках. Сначала вот моя настройка:
- Хост-ОС: Windows 10
- Процессор: i7 5600U
- Оперативная память: 16 ГБ
- VMware Workstation Player (лицензированный)
У меня пока 3 ВМ, и скоро я получу 4-ю, а на моем внутреннем SSD больше нет места, поэтому мне нужен внешний диск, чтобы разместить некоторые из них. У меня есть ноутбук с портами USB3 и док-станция для ноутбука с портом eSATA. Я читал о скоростях обоих, и 5 Гбит/с против 6 Гбит/с не кажутся мне такой уж большой разницей (но я не эксперт в этом) - и единственные другие подключенные USB-устройства - это кабельная мышь и клавиатура.
Для чего я использую виртуальные машины: я разработчик, и разные виртуальные машины предназначены для разных сред разработки.
- Первая виртуальная машина работает под управлением Windows Server 2008 с Visual Studio, SQL Server и K2 Blackpearl.
- Вторая виртуальная машина работает под управлением Windows Server 2012 с Visual Studio, SQL Server и BizTalk (среди прочего, о чем я пока не знаю — это новая виртуальная машина, которую я скоро получу)
- Третья виртуальная машина работает под управлением Ubuntu и будет использоваться для разработки на Python (вероятно, в PyCharm)
- До 4-й виртуальной машины я пока не добрался - меня наняли около месяца назад :-)
Мои вопросы:
- Можно ли запустить виртуальную машину с внешнего жесткого диска? (Или здесь обязательно наличие SSD?)
- Будет ли достаточно USB3 или мне следует приобрести тот, который также поддерживает eSATA?
- Лучше ли хранить редко используемые виртуальные машины на внешнем диске, а затем перемещать их на внутренний диск, когда мне нужно будет их использовать? Это потребует от меня сначала переместить виртуальную машину с внутреннего диска на внешний, отсюда и этот вопрос.
- Возможно ли вообще запустить виртуальную машину с внешнего диска без существенной потери производительности?
Думаю, на этом пока все. Жду ваших ответов.
С наилучшими пожеланиями,
Иоаким
Для тех, кто найдет этот пост и захочет узнать результат: У меня были некоторые сомнения по поводу этой предварительной руки, и я бы не рекомендовал эту настройку ни одному разработчику. Время загрузки ужасное, а запуск приложений вроде Visual Studio занимает как минимум в 3-4 раза больше времени.
Мой совет: Используйте это решение только в том случае, если у вас нет альтернатив.
решение1
Ответ немного зависит от того, что должны делать виртуальные машины. Для "бумажной работы", такой как написание и чтение, все будет в порядке. "Значительная потеря производительности" — это не вполне определенное значение.
Для большинства людей это должно быть нормально. Если вы оказались крайне нетерпеливым пользователем компьютера, приобретите самое быстрое оборудование, какое только сможете, я бы даже посоветовал заменить внутренний SSD на более объемный. Сейчас на рынке есть SSD на 2 ТБ, который может быть или не быть слишком дорогим для вас (700-800$).
В программировании вы, скорее всего, не получите большего от написания кода. Вы можете получить прирост производительности при компиляции. Если вы не из тех, кто делает что-то параллельно, пока ваш код компилируется, приобретите самое быстрое оборудование, которое сможете.
TLDR: Если вы можете себе это позволить или у вас нет HDD, купите SSD, внутренний или внешний (eSATA или USB 3). Если сомневаетесь, купите что-нибудь получше.
- Можно ли запустить виртуальную машину с внешнего жесткого диска? (Или здесь обязательно наличие SSD?)
Да, это возможно, но, скорее всего, у вас будет некоторая потеря производительности. Виртуальная машина должна работать нормально, если у вас нет операций, требующих большой записи файлов. Кроме того, чем меньше виртуальная машина, тем лучше. Если у вас виртуальная машина Windows на 50-60 ГБ, она будет очень медленной на внешнем жестком диске 5400 с USB 3. Я говорю об этом по собственному опыту. Вы все еще можете что-то делать, но это займет некоторое время.
Запуск более одной виртуальной машины на внешнем жестком дискевовремяможет привести к серьезной потере производительности. Рассмотрите возможность использования двух внешних жестких дисков для этого сценария.
- Будет ли достаточно USB3 или мне следует приобрести тот, который также поддерживает eSATA?
USB3 должен быть в порядке, по крайней мере, так было в тех случаях, когда я их использовал. Чем быстрее, тем лучше. Если вы еще не купили внешний жесткий диск, вам, возможно, захочется выбрать eSATA, потому что вы никогда не знаете, для чего будете использовать свои свободные порты USB. (Возможно, вы захотите добавить второй внешний диск для резервных целей.) С жестким диском вы, возможно, не получите намного большей производительности от eSATA, потому что скорость записи и чтения файлов на вращающемся диске является ограничивающим фактором.
Также попробуйте получить SSD или хотя бы 7200 об/мин HDD для внешнего диска, если вы все еще можете его найти. Или соберите его из внешнего корпуса и внешнего USB-корпуса. Если вы не можете позволить себе SSD, 7200 сократит время передачи файлов на несколько процентных пунктов.
- Лучше ли хранить редко используемые виртуальные машины на внешнем диске, а затем перемещать их на внутренний диск, когда мне нужно будет их использовать? Это потребует от меня сначала переместить виртуальную машину с внутреннего диска на внешний, отсюда и этот вопрос.
Я думаю, вам следует хранить виртуальные машины, которые будут выполнять много тяжелой работы, например, запись файлов и интенсивные вычисления, на внутреннем диске, независимо от того, как часто вы их используете. Перемещение их может быть довольно мучительным. Копирование виртуальной машины объемом 20 ГБ с внутреннего на внешний жесткий диск займет около 6-7 минут при скорости 60 МБ/с. С внутреннего на внешний SSD будет значительно быстрее. Если вы найдете производительность виртуальных машин на внешнем диске приемлемой, перемещение их может не потребоваться. Вы сможете перейти этот мост, когда доберетесь туда.
- Возможно ли вообще запустить виртуальную машину с внешнего диска без существенной потери производительности?
См. 1., да, это возможно для нормальной и средней компьютерной работы, если виртуальная машина небольшая. Если вы занимаетесь графическим дизайном или много передаете файлов, может быть серьезная потеря производительности.
Для ваших программных нужд я бы рекомендовал, основываясь на данных, собранных в другом месте, приобрести SSD (Что важнее ЦП или ОЗУ для компиляции большого программного обеспечения, например, начальной загрузки gcc?,http://www.overclock.net/t/997361/compiling-and-cpu-usage). Хотя есть и некоторые особые мнения (https://stackoverflow.com/questions/15199356/speed-up-compile-time-with-ssd). Опять же, если сомневаетесь, берите хорошее.
Редактировать: 5 января 2016 г. — добавлена некоторая информация в связи с недавним опытом
решение2
Я запустил виртуальную машину на USB3-флешке в течение последнего года. Это было очень просто и очень удобно, но есть несколько замечаний на полях.
Я не уверен насчет VMWare, но для VirtualBox это просто вопрос перетаскивания файла вашего виртуального диска на USB и присоединения его к вашей виртуальной машине. Вам придется сделать конфигурацию на каждом хосте, с которым вы его используете, но это всего лишь один раз. Хосты работают друг с другом довольно хорошо. Единственное, что я заметил, это то, что моя виртуальная машина будет иметь сетевой интерфейс для каждой сети хоста, к которой она была подключена, но в остальном она не давала мне никаких конфликтов.
Мой USB в конце концов сломался, что неудивительно. USB-флешки не предназначены для постоянного приема циклов записи, они довольно быстро изнашиваются, если вы используете свою виртуальную машину для разработки, особенно если ваша виртуальная машина работает как сервер и постоянно пишет в файлы журнала/кэша.
Производительность может быть проблемой. Если вы все же приобретаете USB-накопитель, обратите внимание на те, у которых высокая скорость чтения и записи, но даже в этом случае вы заметите влияние.
Я думаю, что внешний SSD-диск может быть лучшим выбором. Он менее удобен, чем небольшая флешка, но обычно они достаточно портативны, чтобы их было легко носить с собой, обладают более высокой производительностью и служат дольше. (Я знаю, что в наши дни флэш-память и SSD — это фактически одна и та же технология, но SSD разрабатываются с расчетом на более высокую частоту чтения и записи, в то время как USB-накопители в основном предназначены только для хранения файлов.)
В последнее время я решил использовать некое гибридное решение. Было очень удобно иметь полный набор инструментов для программирования внутри портативной виртуальной машины, но моя IDE работала в ней заметно медленнее и иногда зависала на несколько секунд. Теперь я использую большую часть своих инструментов программирования на хосте, сохраняя исходный код и серверы на гостевой машине. Моя виртуальная машина по-прежнему является полноценным рабочим столом, поэтому в тех редких случаях, когда мне все еще приходится работать на чужом компьютере, я могу просто развернуть графический интерфейс своей виртуальной машины и работать с ее IDE и инструментами программирования.