首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用lvmvdo在重新引导时持久化创建一个ramdisk?

使用lvmvdo在重新引导时持久化创建一个ramdisk?
EN

Server Fault用户
提问于 2023-02-14 06:12:37
回答 1查看 74关注 0票数 0

我试图用下面的单元文件使用lvmvdo创建一个持久化的ramdisk,但它似乎不起作用,我还没有将--type vdo选项添加到lvcreate命令中(这是用于RHEL9 9)

代码语言:javascript
复制
[mukesh@server1 ~]$ sudo cat /etc/systemd/system/my_lvm.service 
[Unit]
Description=Create and mount LVM logical volume

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c 'mknod /dev/ram0 b 1 0; \
  pvcreate /dev/ram0; \
  vgcreate my_vg /dev/ram0; \
  lvcreate -n my_lv -L 100M my_vg; \
  mkfs.ext4 /dev/my_vg/my_lv; \
  mount /dev/my_vg/my_lv /mnt/ramdisk'

[Install]
WantedBy=multi-user.target

好的,我做了一些更改(我使用的是brd内核模块而不是mknod),现在ExecStart工作正常,但是ExecStop不能工作。

代码语言:javascript
复制
[mukesh@server1 ~]$ cat /etc/systemd/system/my_lvm.service 
[Unit]
Description=Create and mount LVM logical volume

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c 'pvcreate /dev/ram0; \
  vgcreate my_vg /dev/ram0; \
  lvcreate -n my_lv -L 80M my_vg; \
  mkfs.ext4 /dev/my_vg/my_lv; \
  mount /dev/my_vg/my_lv /mnt/ramdisk'

ExecStop=/bin/bash -c 'umount /mnt/ramdisk; \
  lvremove -yff /dev/my_vg/my_lv; \
  vgremove -yff my_vg; \
  wipefs /dev/ram0; \
  pvremove -yff /dev/ram0'

[Install]
WantedBy=multi-user.target

更新错误:journalctl -xeu my_lvm.service的输出

代码语言:javascript
复制
Feb 14 15:05:40 server1.example.com bash[2881]:   Logical volume my_vg/my_lv contains a filesystem in use.
Feb 14 15:05:40 server1.example.com bash[2882]:   Logical volume my_vg/my_lv contains a filesystem in use.
Feb 14 15:05:40 server1.example.com bash[2883]: DEVICE OFFSET TYPE        UUID                                   LABEL
Feb 14 15:05:40 server1.example.com bash[2883]: ram0   0x218  LVM2_member nEmZLv-x6eJ-WnQV-JIpq-zbK5-EsXA-fEhFqM
Feb 14 15:05:40 server1.example.com bash[2878]:   WARNING: PV /dev/ram0 is used by VG my_vg.
Feb 14 15:05:40 server1.example.com bash[2878]:   WARNING: Wiping physical volume label from /dev/ram0 of volume group "my_vg".
Feb 14 15:05:40 server1.example.com bash[2878]:   Can't open /dev/ram0 exclusively.  Mounted filesystem?
Feb 14 15:05:40 server1.example.com bash[2878]:   Can't open /dev/ram0 exclusively.  Mounted filesystem?
Feb 14 15:05:40 server1.example.com bash[2878]:   Error opening device /dev/ram0 for reading at 0 length 4096.
Feb 14 15:05:40 server1.example.com bash[2878]:   Cannot use /dev/ram0: device has a signature
Feb 14 15:05:40 server1.example.com systemd[1]: my_lvm.service: Control process exited, code=exited, status=5/NOTINSTALLED
Feb 14 15:05:40 server1.example.com systemd[1]: my_lvm.service: Failed with result 'exit-code'.
Feb 14 15:05:40 server1.example.com systemd[1]: Stopped Create and mount LVM logical volume.
EN

回答 1

Server Fault用户

发布于 2023-02-14 12:00:59

这似乎满足了我的要求,它似乎没有任何issue.Unless的工作,有一个更好的方法来做它。

代码语言:javascript
复制
[munish259272@munish259272example ~]$ cat /etc/modules-load.d/brd.conf
brd
[munish259272@munish259272example ~]$ cat /etc/modprobe.d/brd.conf 
options brd rd_nr=1 rd_size=73400320 max_part=1
[munish259272@munish259272example ~]$ lsmod | grep brd
brd                    16384  1
[munish259272@munish259272example ~]$ 

单位档案:

代码语言:javascript
复制
[Unit]
Description=Create and mount LVM logical volume

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash -c 'pvcreate /dev/ram0; \
  vgcreate my_vg /dev/ram0; \
  lvcreate --type vdo -n my_lv -l 17919 -V 700G  --config "allocation/vdo_slab_size_mb=1024" my_vg; \
  mkfs.ext4 -K /dev/my_vg/my_lv; \
  mount /dev/my_vg/my_lv /mnt/ramdisk; \
  lvmdevices -y --deldev /dev/ram0'


[Install]
WantedBy=multi-user.target
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1122874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档