IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    ArchLinux 部署 SSD 缓存

    hev发表于 2016-01-13 07:30:41
    love 0

    在 Linux 系统上使用带宽更高、延迟更小的 SSD 作为 HDD 的缓存来打造软件实现的“混合硬盘”是一种容量和性能折中的方案。在 Linux 系统中使用高速外存作低速外存的缓存有两个成熟的方案:1. lvmcache 2. bcache。本文记录的是基于 lvmcache 在 Arch Linux 系统上的部署方法。

    硬件情况
    1. 一块120GB容量的固态硬盘 (/dev/sda)。
    2. 一块1TB容量的机械硬盘 (/dev/sdb)。

    分区规划

    /dev/sda1     20GB     lvm
    /dev/sda2     100GB    lvm
    /dev/sdb      1TB      lvm
    

    LVM 规划

    VG (system) -> { PV (/dev/sda1) }
    VG (data) -> { PV (/dev/sdb), PV (/dev/sda2) }
    
    LV (system/arch) 19.9GB
    LV (data/home) 917GB
    LV (data/home_cache) 91GB
    

    操作系统完全安装在 SSD 中, home 存放于 HDD 中,但使用 SSD 的剩余空间作为 cache。为什么不把所有数据存放于 HDD 中,仅用 SSD 作为 cache 呢?测试结果是当 cache 加入后就影响了系统的启动,所有只能应用于数据区。

    详细步骤
    1. 使用 ArchLinux iso 启动盘启动系统。
    2. fdisk /dev/sda 先创建一个类型为 lvm 容量为 20GB 的标准主分区,再创建一个类型为 lvm 容量为 100GB 的标准主分区。
    3. pvcreate /dev/sda1
    4. pvcreate /dev/sda2
    5. pvcreate /dev/sdb
    6. vgcreate system /dev/sda1
    7. vgcreate data /dev/sdb
    8. lvcreate -L 19.9G system -n arch
    9. mkfs.ext4 -E discard /dev/mapper/system-arch
    10. mount /dev/mapper/system-arch /mnt
    11. pacstrap /mnt 按照需要安装系统
    12. arch-chroot /mnt
    13. lvcreate –type cache –cachemode wirteback -L 91G -n home_cache data/home /dev/sda2
    14. 另开一个 tty, mount -o bind /run /mnt/run
    15. 回到原 tty, vim /etc/mkinitcpio.conf,找到 HOOkS,在 block 和 filesystem 之间增加个 lvm2
    16. mkinitcpio -p linux
    17. vim /etc/default/grub,找到 GRUB_PRELOAD_MODULES,增加 lvm。
    18. grub-mkconfig -o /boot/grub/grub.cfg
    19. grub-install /dev/sda
    20. 退出,重启。

    查看 cache 状态

    sudo lvs -o cache_read_hits,cache_read_misses,cache_write_hits,cache_write_misses data/home
    

    Over!



沪ICP备19023445号-2号
友情链接