zoukankan      html  css  js  c++  java
  • pve添加zfs磁盘阵列,分配存储

    前言:

    第一篇笔记仅仅是安装了pve,并且添加了cockpit和docker,这篇配置存储部分。

    我的服务器目前是1块120G固态,上次已经装了系统。

    还有2块320G机械盘、2块500G机械盘。

    oracle关于ZFS的文档

    https://docs.oracle.com/cd/E26926_01/html/E25826/preface-1.html#scrolltoc

    一:添加ZFS存储池(磁盘阵列)

    1.初始化磁盘

    我们未必每次都能使用全新的硬盘,那么旧硬盘在ZFS或PVE当中都是不能直接发现的,它怕你误操作把有数据的硬盘给洗白白。

    看我现在就是挂的几块用过的硬盘。

     这些硬盘PVE默认不作为新硬盘给你用。需要重新初始化一下。

    dd if=/dev/zero of=/dev/sd[X] bs=1M count=200 

    X代表你要初始化的磁盘。

    根据我的情况:

    复制代码
    root@pve01:/dev# dd if=/dev/zero of=/dev/sdb bs=1M count=200
    200+0 records in
    200+0 records out
    209715200 bytes (210 MB, 200 MiB) copied, 1.53484 s, 137 MB/s
    root@pve01:/dev# dd if=/dev/zero of=/dev/sdc bs=1M count=200
    200+0 records in
    200+0 records out
    209715200 bytes (210 MB, 200 MiB) copied, 1.6981 s, 123 MB/s
    root@pve01:/dev# dd if=/dev/zero of=/dev/sdd bs=1M count=200
    200+0 records in
    200+0 records out
    209715200 bytes (210 MB, 200 MiB) copied, 2.16789 s, 96.7 MB/s
    root@pve01:/dev# dd if=/dev/zero of=/dev/sde bs=1M count=200
    200+0 records in
    200+0 records out
    209715200 bytes (210 MB, 200 MiB) copied, 2.1021 s, 99.8 MB/s
    root@pve01:/dev#
    复制代码

     PVE可以看到 硬盘了。

    2.创建ZFS

    反正我也不知道为什么PVE的web界面无法创建ZFS。

    我们用命令行来创建:

    先看帮助:

     View Code

    我们只关心creat

     View Code

    3.查看磁盘

    fdisk -l

     View Code

    可以看出有

    sda 120G 固态

    sdb 500G 机械

    sdc 500G 机械

    sdd 320G 机械

    sde  320G 机械 

    4.创建raid0

    示例以两块320来做

    root@pve01:/dev# zpool create -f Storage sdd sde

    5.创建raid1

    示例以两块500来做

    root@pve01:/dev# zpool create -f Virtual mirror sdb sdc

    6.校验结果

     View Code
     View Code

    zfs会自动创建以zfs存储池为名的目录,并挂载存储池到根目录。很方便的了。

    二:导入ZFS存储池

    我会告诉你 最近几天我装了几遍PVE么?不会。

    但是我会告诉你,我在使用UEFI引导XFS格式的6.2版PVE,会出现关机时拔掉硬盘电源线或数据线,再插上,会出现无法引导的故障。

    现在我在使用传统逻辑bios引导的PVE。

    1.查看可以导入的ZFS存储池

    zpool import

     View Code

    2.按原来的名字导入

    zpool import -f 老名字

    1
    zpool import -f Docker

    3.换个名字导入

    zpool import -f 老名字 新名字      

     View Code

    4.测试

    原来的文件还都在的。

    5.迁移ZFS

    其实这是迁移ZFS当中的导入操作。可以完整的将一组ZFS存储池,通过变更接线,甚至搬迁硬盘的方式将一组ZFS存储池变更到另一个主机上。

    6.导出ZFS存储池

    zpool export 存储池名字

     View Code

    7.导入操作请从1开始看

    三:配置docker存贮路径,镜像服务器

    1.创建或修改 /etc/docker/daemon.json 文件

    复制代码
    {
        "registry-mirrors": ["https://******.mirror.aliyuncs.com"],
        "graph": "/Storage/docker"
    }
    复制代码

    我配置DOCKER的主存储路径为/Storage/docker,毕竟Storage就是给docker准备的。

    镜像服务器,用的阿里云镜像,自己去注册一个就好了。https://cr.console.aliyun.com

    2.重启docker

    systemctl restart docker

    3.验证docker配置

    docker info

    可以使用docker info命令查看

    也可以进入/Storage/docker查看,文件一大堆就对了。

    4.配置其他文件夹

    我还要创建build,存储docker-compose使用的yaml文件。

    创建images,存储离线传输的镜像文件。

    创建date,存储容器的永久储存文件。

    四:配置pve存储路径

    1.简介

    PVE的存储有几个作用:

     磁盘映像:虚拟机的虚拟磁盘文件

    ISO镜像:安装虚拟机操作系统时使用的ISO文件

    容器模板:应该是下载的容器模板,不是docker,应该是LXC容器

    VZDUMP备份文件:未知

    容器:还是LXC容器的东西

    片段:更不知道是什么了

    2.添加目录

    ISO:专门存储各种安装镜像。

    virtual_disk:存储各虚拟机的硬盘镜像。

    container:存储容器。

     这些都存在一个zfs存储池当中,分开目录,是为了方便管理以及迁移。

    3.

    4.

    睡觉,明天继续。

  • 相关阅读:
    java定时任务接口ScheduledExecutorService
    spring InitializingBean接口
    spring aop 的一个demo(未完,待完善)
    Spring ApplicationContextAware获取上下文
    Spring ProxyFactory
    搭建maven+spring+mybatis工程
    spring jdbcTemplate源码剖析
    chrome插件
    基于分支限界法的旅行商问题(TSP)一
    利用分支限界法求解单源最短路(Dijkstra)问题
  • 原文地址:https://www.cnblogs.com/surplus/p/14055022.html
Copyright © 2011-2022 走看看