k8sp / ceph

Ceph RBD
4 stars 1 forks source link

多台物理机对同一块RBD的挂载 #2

Closed pineking closed 8 years ago

pineking commented 8 years ago

有三台机器,分别称为16,15,13

  1. 按照https://github.com/k8sp/ceph-rbd/blob/master/mount-on-linux-machine.md ,首先创建liuqsrbd0,然后map到16上,格式化,挂载到/mnt/rbd0目录
  2. 在16上cd /mnt/rbd0 创建一个a.txt 文件
  3. 在15上执行同样操作(除了格式化),挂载到/mnt/rbd0之后,在15上cd /mnt/rbd0能看到a.txt ,然后在此目录创建b.txt,则在16上看不到15上创建的b.txt。但是在15看到的a.txt 只是文件名和16上相同,此时在15修改a.txt 内容并不会反映到16上。在16上修改也不会反映到15上。
  4. 在16上创建c.txt,则15上同样也看不到。
  5. 在16上创建b.txt ,能正常创建,和15上的b.txt 不冲突,互相独立。
pineking commented 8 years ago

结论:

  1. 多台物理机挂载同一块RBD进行读写操作,读写的结果是相互独立。但是如果原来机器或者新的机器再次挂载同一个RBD,所看到的内容是以多台物理机最后一个写操作的为准。而且需要等待一段时间不定。
  2. 所以,为了数据安全,只能有一个机器写。而且,B机器写的内容,如果A机器已经在B机器写之前挂载了RBD,则A机器看不到B机器新写的内容,只有B机器写后,A机器再重新挂载才能看到新写的内容。
jiamliang commented 8 years ago

这个问题在 https://github.com/k8sp/auto-install/issues/109 跟踪。