使用内存盘 格式化文件系统以及部署ceph-osd
文章目錄
- 創(chuàng)建RAMDISK
- 使用內(nèi)存盤
- 使用內(nèi)存盤格式化文件系統(tǒng)
- 使用內(nèi)存盤部署ceph-osd
- 刪除內(nèi)存盤
為了測(cè)試內(nèi)存盤類型的磁盤做ceph osd的io性能,將內(nèi)存部分空間取出來用作普通物理磁盤(RAMDISK),并在該磁盤上部署ceph osd
支持該操作的系統(tǒng)驅(qū)動(dòng)為brd.ko
PS :使用內(nèi)存盤千萬不要存放數(shù)據(jù),因?yàn)閮?nèi)存在操作系統(tǒng)上下電會(huì)被回收掉,如果用作存儲(chǔ)會(huì)造成數(shù)據(jù)的丟失
創(chuàng)建RAMDISK
一般centos7及以上都存在brd.ko文件,不過還是確認(rèn)當(dāng)前操作系統(tǒng)是否存在brd.ko驅(qū)動(dòng)文件
-
locate brd.ko或者find / -name brd.ko/usr/lib/modules/3.10.0-123.el7.x86_64/kernel/drivers/block/brd.ko /usr/lib/modules/3.10.0-123.el7.x86_64-002/kernel/drivers/block/brd.ko -
加載內(nèi)存盤
insmod /usr/lib/modules/3.10.0-123.el7.x86_64/kernel/drivers/block/brd.ko rd_nr=2 rd_size=16777216 max_part=0
使用insmod通過絕對(duì)路徑加載驅(qū)動(dòng),或者直接執(zhí)行如下命令更為簡(jiǎn)單
modprobe brd rd_nr=2 rd_size=16777216 max_part=0
modprobe命令不需要絕對(duì)路徑,只要操作系統(tǒng)存在該文件,它會(huì)自動(dòng)加載并且將與該驅(qū)動(dòng)相關(guān)的依賴驅(qū)動(dòng)一同加載進(jìn)去關(guān)于加載中的參數(shù)配置描述如下:
rd_nr表示一次創(chuàng)建多少個(gè)內(nèi)存盤rd_size表示每隔內(nèi)存盤的大小,單位為KB.這里設(shè)置容量需要根據(jù)操作系統(tǒng)內(nèi)存占用容量來設(shè)置,free -h查看后使用空余內(nèi)存空間max_part表示每隔內(nèi)存盤支持的最大分區(qū)數(shù)
-
查看創(chuàng)建好的內(nèi)存盤
因?yàn)閮?nèi)存盤并不是物理磁盤,也不是塊設(shè)備,所以lsblk查看系統(tǒng)快設(shè)備是看不到的,但是它已經(jīng)已io驅(qū)動(dòng)文件形式存在,所以在目錄/dev/下是可以看到該文件[root@node1 ~]# ls -l /dev/ram* brw-rw---- 1 root disk 1, 0 Jul 3 12:55 /dev/ram0 brw-rw---- 1 root disk 1, 1 Jul 3 12:55 /dev/ram1
使用內(nèi)存盤
由于我這里是用作ceph-osd部署,則不需要自己去格式化操作,
使用內(nèi)存盤格式化文件系統(tǒng)
- 查看內(nèi)存盤容量
fdisk -l /dev/ram0Disk /dev/ram0: 17.2 GB, 17179869184 bytes, 33554432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes - 對(duì)內(nèi)存盤格式化文件系統(tǒng)
mkfs.xfs /dev/ram0 - 掛載文件系統(tǒng)
mount /dev/ram0 /mnt/test
df -h查看文件系統(tǒng)已經(jīng)成功掛載
接下來就可以向文件系統(tǒng)中寫入數(shù)據(jù)
使用內(nèi)存盤部署ceph-osd
因?yàn)閏eph部署osd默認(rèn)block 分區(qū)大小為10G,所以這里我們需要在分區(qū)上部署osd才可行
-
在內(nèi)存盤上使用fdisk做出5G的分區(qū),可以參考fdisk為磁盤做分區(qū)
做出的內(nèi)存盤分區(qū)如下[root@node1 ~]# ls -l /dev/ram0* brw-rw---- 1 root disk 1, 0 Jul 3 15:40 /dev/ram0 brw-rw---- 1 root disk 1, 1 Jul 3 15:40 /dev/ram0p1 -
寫入osd block配置到
ceph.conf中,如下[osd.0] bluestore_block_size = 4294967296 -
執(zhí)行如下命令在做好的分區(qū)上部署osd
ceph-disk -v prepare /dev/ram0p1
ceph-disk -v activate /dev/ram0p1
在激活的時(shí)候會(huì)報(bào)出如下錯(cuò)誤activate: ceph osd.0 data dir is ready at /var/lib/ceph/tmp/mnt.Egdb_s move_mount: Moving mount to final location... command_check_call: Running command: /bin/mount -o noatime,user_xattr -- /dev/ram0p1 /var/lib/ceph/osd/ceph-0 command_check_call: Running command: /bin/umount -l -- /var/lib/ceph/tmp/mnt.Egdb_s command_check_call: Running command: /sbin/sgdisk --change-name=1:ceph data osd.0 /dev/ram0p Problem opening /dev/ram0p for reading! Error is 2. The specified file does not exist!該錯(cuò)誤為修改分區(qū)名稱時(shí)報(bào)出的錯(cuò)誤,因?yàn)閮?nèi)存盤做出的分區(qū) 物理分區(qū)表并沒有分配具體的容量配置。即每個(gè)分區(qū)容量都是整個(gè)內(nèi)存盤容量。但是部署到這里,osd該有的配置已經(jīng)完成。但因?yàn)楫惓?#xff0c;找不到1分區(qū)文件,已經(jīng)跳出了部署腳本,不會(huì)執(zhí)行systemd的start服務(wù)。但是此時(shí)osd是可以被拉起來的。
關(guān)于如上問題,有一個(gè)更好的解決辦法是可以映射多塊內(nèi)存盤,每個(gè)內(nèi)存盤分別做一個(gè)OSD或者其他OSD的db/wal分區(qū)即可,這里可以不使用內(nèi)存盤的分區(qū)來進(jìn)行操作。
systemctl start ceph-osd@0
查看掛載:/dev/ram0p1 16G 45M 15G 1% /var/lib/ceph/osd/ceph-0這里分區(qū)容量問題需要描述一下,因?yàn)槲覀內(nèi)〕龅膬?nèi)存容量為16G用作內(nèi)存盤。但是需要我們?cè)赾eph-disk源碼中會(huì)有sgdisk操作,命令sgdisk中有設(shè)置typecode以及將mbr分區(qū)轉(zhuǎn)成gpt分區(qū)過程。這個(gè)過程會(huì)清除mbr分區(qū),內(nèi)存盤分區(qū)表格式為dos mbr分區(qū),所以這里/dev/ram0p1文件仍然存在,但是分區(qū)表已經(jīng)被破壞,所以此時(shí)看到的容量即為內(nèi)存盤的所有容量了。
查看osd具體容量:
為我們配置文件中設(shè)置的容量
刪除內(nèi)存盤
- 卸載所有掛載在內(nèi)存盤上的文件夾
- 直接執(zhí)行
modprobe -r brd卸載brd驅(qū)動(dòng)
總結(jié)
以上是生活随笔為你收集整理的使用内存盘 格式化文件系统以及部署ceph-osd的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos下将vim配置为强大的源码阅
- 下一篇: 这种招牌字 大小大概一平米 发光字 多少