Vagrant使用“share”和“sync”这两个词看似可以互换。有区别吗?如果是这样,有什么区别?
IMO,“同步”意味着数据在两个地方重复,而Vagrant确实可以确保对另一个数据进行更改。这与“共享”略有不同。这是Vagrant做的,还是两者兼而有之?
编辑:例如,我想要一个运行MySQL服务器的虚拟机,但是要将数据库文件存储在主机上。这种设置是共享/同步目录适合的那种吗?例如,我是否有原子性/交易性的保证?共享语义可以保证这一点,但同步语义可能不会。
(更糟糕的是,还有Vagrant Share,这与同步或分享无关。)
答案 0 :(得分:1)
简而言之:共享文件夹更具特定于VirtualBox(vboxsf
),并且随着文件数量的增长而出现已知的性能问题。
Vagrant v2(vagrant 1.1.x,1.2.x +)文档使用更通用的名称同步文件夹,现在包含许多选项:默认vboxsf
,{{1} },samba / CIFS,NFS。
默认情况下,vagrant将项目目录(rsync
所在的位置)与guest虚拟机中的Vagrantfile
同步。可以在/vagrant
中明确禁用它并执行Vagnrantfile
。
e.g。 vagrant reload
要查看详情,请参阅以下答案:https://stackoverflow.com/a/18529697/1801697
对于config.vm.synced_folder ".", "/vagrant", disabled: true
和vboxsf
,主机和来宾文件夹(我指的是已同步的文件夹)始终处于同步状态(任何一方所做的更改都会同步到另一方)。
注意:SMB / CIFS应该相同但我从未使用过它。
在vagrant 1.5中,添加了nfs
类型,这使得手动同步成为可能,默认情况下,它会在第一次rsync
时从主机同步到来宾。如果主机之间实时同步并且需要不,我个人更喜欢vagrant up
。