Skip to content

Instantly share code, notes, and snippets.

@i-kumagai
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save i-kumagai/33e752771e907aa512ba to your computer and use it in GitHub Desktop.
Save i-kumagai/33e752771e907aa512ba to your computer and use it in GitHub Desktop.
15MBファイル配置
※作成前の状態(pool dataのオブジェクト数が0であることを確認)
# rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
data - 0 0 0 0 0 1 1 120 225164
metadata - 77 21 0 0 0 32 92 83 137
rbd - 0 0 0 0 0 3978 12286 192697 22980607
total used 362436 21
total avail 93907848
total space 94270284
※15 MBのデータを作成(test1ファイルに'a'を15MB出力)
# python bin/file_write.py /fsmount/test1 a 15 0
target file = /fsmount/test1
write char = a
write size = 15
offset = 0
※rados上の配置されたデータを確認(オブジェクト数が4となっていることを確認)
# ls -l /fsmount/test1
-rw-r--r-- 1 root root 15728640 Jun 23 14:18 /fsmount/test1
root@cephdep:~/radosdatas# rados df
pool name category KB objects clones degraded unfound rd rd KB wr wr KB
data - 15360 4 0 0 0 17 20481 159 286611
metadata - 152 21 0 0 0 32 92 139 251
rbd - 1 1 0 0 0 7105 336559 198340 24111674
total used 390712 26
total avail 93879572
total space 94270284
※rados上の配置されたデータ内容を確認
# rados ls -p data
000000000e.000000000
000000000e.000000001
000000000e.000000002
000000000e.000000003
# mkdir data1
# rados get -p data 1000000000e.00000000 data1/1000000000e.00000000
# rados get -p data 1000000000e.00000001 data1/1000000000e.00000001
# rados get -p data 1000000000e.00000002 data1/1000000000e.00000002
# rados get -p data 1000000000e.00000003 data1/1000000000e.00000003
# ls -l data1/
total 15360
-rw-r--r-- 1 root root 4194304 Jun 23 14:22 1000000000e.00000000
-rw-r--r-- 1 root root 4194304 Jun 23 14:22 1000000000e.00000001
-rw-r--r-- 1 root root 4194304 Jun 23 14:22 1000000000e.00000002
-rw-r--r-- 1 root root 3145728 Jun 23 14:22 1000000000e.00000003
※4MBジャストのバイトにx を書込み
# python bin/file_write.py /fsmount/test1 x 1 4194303
target file = /fsmount/test1
write char = x
write size = 1
offset = 4194303
※4MBの次のバイトにyを書込み
# python bin/file_write.py /fsmount/test1 x 1 4194304
target file = /fsmount/test1
write char = y
write size = 1
offset = 4194304
※rados上の配置されたデータを取得し内容を確認
# mkdir data2
# rados get -p data 1000000000e.00000000 data2/1000000000e.00000000
# rados get -p data 1000000000e.00000001 data2/1000000000e.00000001
# rados get -p data 1000000000e.00000002 data2/1000000000e.00000002
# rados get -p data 1000000000e.00000003 data2/1000000000e.00000003
※ファイル差分を確認(1番目と2番目のオブジェクトに差異があることを確認)
# diff -rq data1/ data2/
Files data1/1000000000e.00000000 and data2/1000000000e.00000000 differ
Files data1/1000000000e.00000001 and data2/1000000000e.00000001 differ
※x,yのデータ位置を確認(xが1番目のオブジェクトの最後にあることを確認)
# python bin/check_offset.py data2/1000000000e.00000000 x
4194303
※x,yのデータ位置を確認(yが2番目のオブジェクトの最初にあることを確認)
# python bin/check_offset.py data2/1000000000e.00000001 y
0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment