首页 > 使用内存盘 格式化文件系统以及部署ceph-osd

使用内存盘 格式化文件系统以及部署ceph-osd

文章目录

      • 创建RAMDISK
      • 使用内存盘
        • 使用内存盘格式化文件系统
        • 使用内存盘部署ceph-osd
      • 删除内存盘


为了测试内存盘类型的磁盘做ceph osd的io性能,将内存部分空间取出来用作普通物理磁盘(RAMDISK),并在该磁盘上部署ceph osd

支持该操作的系统驱动为brd.ko

PS :使用内存盘千万不要存放数据,因为内存在操作系统上下电会被回收掉,如果用作存储会造成数据的丢失

创建RAMDISK

一般centos7及以上都存在brd.ko文件,不过还是确认当前操作系统是否存在brd.ko驱动文件

  • 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
    
  • 加载内存盘

    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通过绝对路径加载驱动,或者直接执行如下命令更为简单

    modprobe brd rd_nr=2 rd_size=16777216 max_part=0

    modprobe命令不需要绝对路径,只要操作系统存在该文件,它会自动加载并且将与该驱动相关的依赖驱动一同加载进去

    关于加载中的参数配置描述如下:

    • rd_nr 表示一次创建多少个内存盘
    • rd_size 表示每隔内存盘的大小,单位为KB.这里设置容量需要根据操作系统内存占用容量来设置,free -h查看后使用空余内存空间
    • max_part 表示每隔内存盘支持的最大分区数
  • 查看创建好的内存盘

    因为内存盘并不是物理磁盘,也不是块设备,所以lsblk查看系统快设备是看不到的,但是它已经已io驱动文件形式存在,所以在目录/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
    

使用内存盘

由于我这里是用作ceph-osd部署,则不需要自己去格式化操作,

使用内存盘格式化文件系统

  • 查看内存盘容量

    fdisk -l /dev/ram0
    Disk /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
    
  • 对内存盘格式化文件系统

    mkfs.xfs /dev/ram0
  • 挂载文件系统

    mount /dev/ram0 /mnt/test

    df -h查看文件系统已经成功挂载

    在这里插入图片描述

    接下来就可以向文件系统中写入数据

使用内存盘部署ceph-osd

因为ceph部署osd默认block 分区大小为10G,所以这里我们需要在分区上部署osd才可行

  • 在内存盘上使用fdisk做出5G的分区,可以参考fdisk为磁盘做分区

    做出的内存盘分区如下

    [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
    
  • 执行如下命令在做好的分区上部署osd

    ceph-disk -v prepare /dev/ram0p1

    ceph-disk -v activate /dev/ram0p1

    在激活的时候会报出如下错误

    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!
    

    该错误为修改分区名称时报出的错误,因为内存盘做出的分区 物理分区表并没有分配具体的容量配置。即每个分区容量都是整个内存盘容量。但是部署到这里,osd该有的配置已经完成。但因为异常,找不到1分区文件,已经跳出了部署脚本,不会执行systemd的start服务。但是此时osd是可以被拉起来的。

    关于如上问题,有一个更好的解决办法是可以映射多块内存盘,每个内存盘分别做一个OSD或者其他OSD的db/wal分区即可,这里可以不使用内存盘的分区来进行操作。

    systemctl start ceph-osd@0

    查看挂载:

    /dev/ram0p1      16G   45M   15G   1% /var/lib/ceph/osd/ceph-0
    

    这里分区容量问题需要描述一下,因为我们取出的内存容量为16G用作内存盘。但是需要我们在ceph-disk源码中会有sgdisk操作,命令sgdisk中有设置typecode以及将mbr分区转成gpt分区过程。这个过程会清除mbr分区,内存盘分区表格式为dos mbr分区,所以这里/dev/ram0p1文件仍然存在,但是分区表已经被破坏,所以此时看到的容量即为内存盘的所有容量了。

    查看osd具体容量:

    为我们配置文件中设置的容量

    在这里插入图片描述

删除内存盘

  • 卸载所有挂载在内存盘上的文件夹
  • 直接执行modprobe -r brd 卸载brd驱动

更多相关:

  •   在config/index.js找到dev:{}里面的autoOpenBrowser: 设置为true,重新npm run dev一次就自动弹出浏览器页面啦!  ...

  • 工作中需要用到批量修改文件用户和组的情况,特记录以下便捷用法。 1.批量修改多个文件的user和group chown ats:ats /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi /dev/sdj /dev/sdk /dev/sdl /dev/sdm...

  • ceph环境:12.2.1 使用古老的ceph-disk工具部署osd,仅仅prepare过程中就出现如上所示问题 Device is in use by a device-mapper mapping md127 解决方法如下: 由于device-mapper为系统自己的磁盘映射器,此时检查系统是否有逻辑卷 pvs lvs v...

  • 环境: ceph L版本12.2.1升级到12.2.12 这个问题是由于升级后进行12.2.12环境中的使用ceph-disk 进行osd部署时出现如下问题,执行命令 ceph-disk -v prepare /dev/sdb;ceph-disk -v activate /dev/sdb1 出现如下问题,出现这个问题之前我的磁盘用作...

  • 划分磁盘分区 sgdisk -n 1:+2G:+50G /dev/sda 划分磁盘分区,一号分区划分为50G,同时预留2G的空间 磁盘格式化 sgdisk -z -og /dev/sda 查看分区详情 sgdisk -i 1 /dev/hda查看hda第一分区的详情信息 [root@node3 ~]# sgdisk...

  • 1. Build uboot a) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好 环境变量PATH,保证可以正常使用。 b) 解压 uboot_tiny4412-20130729.tgz 并进入相应的目录 tar xzf uboot_tiny4412-201307...

  • 分区助手 - 很棒的磁盘分区调整软件 http://www.onlinedown.net/soft/111710.htm 转载于:https://www.cnblogs.com/olmlo/archive/2013/06/05/3119411.html...