1. ob电竞体育app下载

    2023年1月18日星期三

    前言

    在这篇文章中,我提供了如何使用安装本地Ubuntu镜像的说明debmirror

    简介

    默认情况下,Ubuntu系统直接从internet获取更新archive.ubuntu.com.在一个有很多Ubuntu系统(服务器和/或台式机)的环境中,这可能会导致大量的互联网流量,因为每个系统都需要下载相同的更新。

    在这样的环境中,如果一个系统能够下载所有的Ubuntu更新,那么效率会更高一次然后分发给客户。在这种情况下,更新是使用本地网络分发的,消除了internet链路上的任何压力1

    图

    我们称这样的系统为本地镜像,它只是一个web服务器,有足够的存储空间来保存Ubuntu存档(或部分存档)。本地镜像尤其适用于网络带宽有限的网站,但它还有一些额外的好处。

    总结一下主要的好处:

    1. 减少互联网带宽使用
    2. 使用本地网络更快的更新过程(通常比internet链接更快)
    3. 更新或安装系统,即使在互联网或上游中断

    本地镜像的主要缺点有:

    1. 需要维护和监控的额外服务
    2. 存储要求:1TB起步
    3. 初始同步可能需要很长时间,具体取决于网速

    镜像解决方案

    Ubuntu镜像脚本

    这个解决方案面向的是喜欢运行自己的区域镜像的isp或公司。它的目的是镜像整个,未经过滤的Ubuntu包存档。

    到2023年,archive.ubuntu.com应该有2.5TB, ports.ubuntu.com (ARM/RISCV和其他)也有2.5TB左右。

    这是很大的存储空间,可能不是大多数环境所需要的。即便如此,如果这是你想要的,你可以咨询此网页并使用这里提到的脚本。

    debmirror

    根据我自己的研究,对于Jammy AMD64(22.04)和Focal AMD64(20.04)来说,Debmirror工具似乎是创建本地Ubuntu镜像的最简单和直接的方法,它的数据占用空间合理,大约为480 GB(2023)。欧宝体育直播官网

    根据您的需要,您可以进一步调整Debmirror,以只下载您的环境所需的包。

    apt-cacher-ng

    这个工具apt-cacher-ng充当缓存代理,仅存储客户端请求的更新。丢失的或新的更新只会在第一个客户端请求此下载时下载,尽管似乎有预下载更新的选项。

    尽管我希望占用空间比debmirror小得多,但我找不到任何关于实际磁盘使用情况的信息。欧宝体育直播官网

    使用debmirror创建一个Ubuntu镜像

    尽管apt-cache -ng是一个非常有用的解决方案,有许多附加特性,但我觉得像debmirror这样的简单镜像解决方案非常容易设置和维护。本文将重点讨论debmirror。

    准备

    1 -电脑

    首先,我们需要一台计算机——可以是物理的,也可以是虚拟的——来充当本地镜像。我曾使用树莓派4B+作为带有外置USB硬盘的镜像,它可以轻松饱和本地1gbit网络。ob体育下载

    最小存储容量为2tb ~ 1TB

    我正在为AMD64架构镜像Ubuntu 22.04和20.04,它使用了大约480 GB(2023)。对于ARM64,应该会有类似的存储空间。应该有一些空间可以用于未来的增长,这就是为什么我建议至少有1tb的可用空间。

    除了容量之外,您还应该考虑冗余的重要性:如果镜像存储设备失效,您必须重新下载所有数据,欧宝体育直播官网该怎么办?这种影响值得在冗余/ RAID上投资吗?

    如果最近的同步出现问题,使用像ZFS或LVM这样支持快照的文件系统(层)来快速将镜像恢复到已知的良好状态可能会很有趣。

    3 -选择一个本地公共Ubuntu存档

    最好将本地镜像与Ubuntu公共档案靠近你的实际位置。这提供了最佳的互联网性能,也减少了对全局存档的压力。使用链接镜像列表为您的位置选择最佳镜像。

    就我而言,我使用nl.archive.ubuntu tu.com,因为我在荷兰。

    Ubuntu镜像配置

    01 -添加存储设备/卷到“fstab . sh”目录

    如果您还没有这样做,请确保您创建了一个目录作为我们将用于镜像的存储的挂载点。

    在我的例子中,我创建了/mirror目录…

    mkdir /镜子

    ...并像这样更新了fstab(示例!):

    /dev/disk/by-uuid/154d28fb-83d0-4848-ac1d-da1420252422 /mirror XFS noatime 0 0

    我建议使用by-uuid或by-id路径来挂载存储设备,因为这是最稳定的,并且不要忘记使用正确的文件系统(xfs/ext4)。

    现在我们可以发布:

    挂载/镜子

    安装所需的软件

    我们需要在镜像上安装一个web服务器来为客户端提供deb包。安装非常简单,不需要进一步配置。在这个例子中,我使用Apache2,但你可以使用任何你喜欢的web服务器。

    如果您想使用常规HTTP与上游镜像同步,则不需要额外的软件。

    update apt install apache2 debmirror gnupg xz-utils

    我认为使用rsync进行同步更有效和更快,但您必须配置您的防火墙,以允许出站流量到TCP端口873(这超出了本教程的范围)

    安装rsync

    提示:确保你在20.04或22.04系统上运行debmirror,因为旧版本不支持当前的ubuntu镜像,一些必需的文件将无法下载。

    03 -创建文件路径

    我已经创建了这个目录结构来托管我的本地镜像回购。

    /mirror/debmirror──debmirror/amd64 mkdir /mirror/debmirror/mirrorkeyring mkdir /mirror/debmirror/mirrorkeyring mkdir /mirror/scripts│├──││├──pool││├──

    amd64目录中的文件夹将由debmirror创建,因此不需要预先创建。

    04 -安装GPG钥匙圈

    GPG——no-default-keyring——keyring/ mirror/debmirror/mirrorkeyring/trustedkeys。导入/usr/share/keyrings/ubuntu-archive-keyring.gpg

    创建符号链接

    我们需要在apache2 /var/www/html目录中创建指向镜像的符号链接,如下所示:

    cd/var/www/html ln -s /mirror/debmirror/amd64 ubuntu

    06 -配置debmirror

    Debmirror只是一个带有许多参数的命令行工具。如果我们想每天运行这个工具来保持本地镜像的同步,最好使用一个可以被cron调用的包装器脚本。

    提供了这样的包装器脚本这个页面我还附上了我自己定制的版本ob电竞平台

    你可以下载这个脚本并把它放在/mirror/scripts中,就像这样:

    cd/mirror/scripts wget https://欧宝体育登陆首页官网下载www.buy-gems.com/files/debmirroramd64.sh.txt -O debmirroramd64.sh chmod +x debmirroramd64.sh

    现在我们需要编辑这个脚本,并根据您的特定需求更改一些参数。与示例相比,我所做的更改如下:

    出口GNUPGHOME/镜子/ debmirror / mirrorkeyring释放焦、focal-security focal-updates focal-backports,适意的,jammy-security, jammy-updates jammy-backports服务器nl.archive.ubuntu.com原型rsyncoutPath/镜子/ debmirror / amd64

    Ubuntu 20.04和22.04的安装程序ISO似乎也需要-backports版本,所以它们也包括在内。

    限制我还不能(到目前为止)使执行-发布-升级过程能够将一个系统从焦点升级到干扰。我发现了这个旧资源但这些指示似乎对我不起作用。

    07 -限制带宽

    默认情况下,脚本不提供限制rsync带宽使用的方法。在我的脚本中,我添加了一些行,使带宽限制作为一个选项。

    添加一个必须不加注释的新变量,可以将其设置为所需的限制。在这种情况下,1000意味着每秒1000千字节。

    bwlimit = 1000

    你还需要取消这一行的注释:

    ——rsync-options "-aIL -partial -bwlimit=$bwlimit" \

    08 -初始同步

    建议不要先运行初始同步,然后再配置周期性cron作业来执行每日同步。第一次同步可能会花费很长时间,并且可能会干扰cron作业。建议在初始同步完成后才启用cronjob。

    由于初始同步可能需要一段时间,所以我喜欢在屏幕上运行这个作业。如果您不小心关闭了终端,rsync进程不会被中断(尽管如果发生这种情况,这不是什么大问题,它只是继续它停止的地方)。

    安装screen /mirror/scripts/debmirroramd64.sh

    09 -设置cron作业

    当初始同步完成后,我们可以配置cron作业定期同步。

    01* * * /mirror/scripts/debmirroramd64.sh

    在这种情况下,同步在每天凌晨1点运行。

    镜像包含所有安全更新,因此根据您的环境,建议至少每天同步镜像一次。

    10 -客户端配置

    所有客户端都应该指向/etc/apt/sources中的本地镜像文件列表。您可以使用镜像的ip地址,但如果您运行本地DNS,那么设置一个像mirror.your.domain这样的DNS记录并重新配置所有客户端以连接到该域名并不需要太多工作。

    这是/etc/apt/sources.客户端列表

    黛比http://mirror.your.domain/ubuntu释放主要限制宇宙多元宇宙黛比http://mirror.your.domain/ubuntuRELEASE-security主要限制宇宙多元宇宙黛比http://mirror.your.domain/ubuntu发布更新主要限制宇宙多元宇宙

    RELEASE值应该更改为适当的ubuntu版本,如bionic, focal或jammy。

    如果你有一个有很多Ubuntu系统的环境,这个配置很可能是用ansible这样的工具配置的。

    11 -监控

    虽然系统监视超出了本文的范围,但是有两个主题需要监视:

    1. 磁盘空间使用情况(如果空间即将耗尽则发出警报)
    2. 同步脚本执行成功(如果脚本失败会发出警报)

    如果您不监视同步过程,镜像将过时,将缺乏最新的安全更新。

    关闭的话

    由于许多环境要么是云原生的,要么正在迁移到云环境,运行本地镜像似乎越来越无关紧要。然而,仍然有一些环境可以从本地镜像设置中受益。也许这个说明是有帮助的。


    1. 你可能会注意到,云提供实际上也运行他们自己的Ubuntu存档镜像,以减少他们的上游和对等链路上的负载。当你部署一个基于Ubuntu的标准虚拟机时,它默认配置为使用本地镜像。

    标记为: ob电竞
  2. 了解Ubuntu 20.04 LTS服务器自动安装程序

    2021年2月11日星期四

    简介

    Ubuntu Server版本18.04 LTS使用debian-installer (d-i)进行安装过程。这包括支持“预播种”来创建无人值守(自动)的ubuntu安装。

    d - i

    debian安装程序

    随着Ubuntu Server 20.04“Focal Fossa”LTS的推出,早在2020年4月,Canonical就决定新的“sub - quity Server installer”已经准备好取代它的位置。

    在新的安装程序获得了对无人值守安装的支持之后,就可以发布了。调用无人值守的安装程序特性“Autoinstallation”

    我主要运行Ubuntu 18.04 LTS安装,但我在2021年2月决定,我应该更熟悉20.04 LTS,特别是当我发现预播不再工作时。

    在本文中,我假设读者熟悉基于pxe的无人值守安装。

    20.04 LTS和22.04 LTS无法安装在USB驱动器上(2022年8月更新)

    我运行了一些HP microserver,它们使用内部USB头从USB驱动器框中的SATA SSD启动。Ubuntu 18.04 LTS的自动安装从USB设备安装和引导没有问题。

    不幸的是,Ubuntu 20.04和22.04 LTS都可以安装,但无论我怎么做,它们都不能从USB启动。我尝试过不同的外壳,大多数都不会工作。只有一个供电的USB底座(它太大了,不适合Microserver)可以工作,让22.04从USB启动。

    再次强调:Ubuntu 18.04和最新的Debian运行良好,所以这似乎是一个特定于新的Autoinstall机制的问题。

    注意:我没有在其他硬件上尝试这一点(我没有),所以这可能是HP Microserver Gen8特有的问题。

    为什么是这个新的安装程序?

    Canonical希望统一Ubuntu桌面和服务器安装的代码库,这似乎是这次变化的主要驱动因素。

    从我个人的角度来看,没有任何对我的用例有利的新特性,但对其他人来说可能是不同的。这不是一个新的自动安装程序,这只是我怎么看它。

    新的安装程序和预装程序之间有一个概念上的区别。一个预先种子文件必须回答所有安装程序需要回答的问题。如果没有回答问题,它将切换到交互模式,打破无人值守的安装过程。根据我的经验,要获得正确的预种子配置,需要进行一些试错。

    新的subquity安装程序用户默认为所有安装步骤。这意味着只需几行YAML就可以完全自动化安装过程。你不需要每一步都有答案。

    新的安装程序与其他功能一样,如SSH进入安装程序会话的能力。它的工作原理是在屏幕/控制台上生成一个随机密码,您可以使用它通过SSH远程登录。我还没有用过,因为我觉得没有必要。

    文档有点零散

    当我试图了解更多关于新的自动安装程序时,我注意到没有一个包含欧宝体育直播官网所有相关文档(链接)的中心位置。我花了一点时间搜索和跟踪链接,收集了一组有用的信息源,我在下面分享。

    链接 描述
    参考手册 用户数据YAML的每个特定选项的引用
    简介 通过示例概述新的安装程序
    自动安装快速启动 使用KVM通过安装程序启动虚拟机
    网络引导安装程序 关于如何使用dnsmasq设置PXE + TFTP以便PXE启动新的安装程序的简短说明
    呼叫测试 人们就他们使用安装程序的经验提供反馈的主题(截至2021年2月仍很活跃),有很多回应
    交换岗 详细的教程与一些经验。
    中文章 包含一个例子和一些经验。
    github的例子 Github回购了大约20个更复杂欧宝体育直播官网的配置示例

    参考文档仅支持无人值守安装过程的一些默认用例。您将无法使用此引用构建更复杂的配置,例如基于raid的安装。

    在引擎盖下,安装程序使用科廷.链接的文档可以帮助您进一步构建复杂的安装,比如那些使用RAID的安装。

    我认为curtin语法有点乏味,幸运的是它可能不需要学习curtis和手工拼凑更复杂的配置。有一个很好的生活质量特性可以解决这个问题。

    稍后再详细介绍。

    新的安装程序如何工作?

    在常规的基于pxe的安装中,我们使用“netboot”安装程序,它由一个Linux内核和一个initrd映像(包含实际的安装程序)组成。

    如果你已经为基于pxe的安装设置欧宝体育直播官网了DHCP + TFTP + HTTP环境,那么这个包对于Ubuntu 18.04 LTS来说大约是64mb,这就是你所需要的。

    新的Ubuntu 20.04 LTS的subquity安装程序弃用了这个“netboot”安装程序。它不再被提供。相反,你必须启动一个“实时安装程序”ISO文件,大小约为1.1 GB。欧宝体育直播官网

    过程如下:

    1. 下载Live安装程序ISO
    2. 挂载iso以获取TFTP根目录的“vmlinuz”和“initrd”文件
    3. 更新你的PXE菜单(如果有的话),像这样的节:
    LABEL focal2004-preseed MENU LABEL Focal 20.04 LTS x64 Manual Install KERNEL linux/ubuntu/ Focal /vmlinuz INITRD linux/ubuntu/ Focal / INITRD APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.11.1/ubuntu-20.04.1-live-server-amd64.iso

    这个过程有文档记录在这里详细的操作步骤和命令。

    我们还没有讨论实际的自动化部分,但首先我们必须说明一个警告。

    新的安装程序在pxe引导时需要3GB RAM


    2022年5月更新:

    20.04.4更新不会在一台机器上工作4096 MB当PXE启动时,占用大量内存。我的测试表明,在20.04更新中,04至少需要4300MB的内存。

    因此,如果我们谈论的是一台物欧宝体育直播官网理机器,基于常规内存DIMM大小,这台机器很可能必须有6到8 GB的内存。只是为了安装Ubuntu Linux PXE。我认为这是不对的。


    尽管没有明确的记录1在美国,新的pxe机制——使用Live ISO引导新的Ubuntu安装程序——至少需要3072 MB内存。我向你保证,3000 MB是足够了。

    似乎ISO文件通过网络复制到内存中,并在RAM磁盘上提取。在一个1500 MB的RAM磁盘和一个1100 MB的ISO文件中,我们可能还剩下472 MB的RAM用于运行内核和initrd映像。

    从这个角度来看:我可以用512mb的RAM执行一个无人值机的Ubuntu 18.04 LTS安装2

    由于这个“新的”安装过程,Ubuntu Server 20.04的要求更高最低系统要求Windows 2019服务器如果内存“只有”512 MB,即使在安装过程中也没问题。我不得不承认,我觉得这个观察结果有点好笑。

    看来这个3 GB内存的安装过程的要求是纯粹的和仅仅因为新的安装流程。显然,Ubuntu 20.04在安装后可以在更小的内存占用中运行。

    在底层,一个名为“casper”的工具用于引导安装过程,该工具只支持本地文件系统(在本例中是RAM磁盘)。理论上,casper支持使用NFS或CIFS进行安装,但目前尚不支持,也未进行测试。据我所知,有些人尝试使用它,但没有成功。

    据我所知,目前的状态是你不能在任何内存小于3GB的硬件上使用PXE-boot安装Ubuntu Server 20.04 LTS。这可能会影响旧的和不太强大的硬件,但我记得这实际上是这一点运行Linux系统。

    基于pxe的服务器安装程序需要3GB内存,这在概念上感觉是错误的。


    重要的

    内存要求为3GB仅对基于pxe的安装有效.如果你从ISO / u盘启动,你可以在内存更少的系统上安装Ubuntu Server。我用一个只有1gb内存的系统验证了这一点。


    Autoinstall配置

    现在让我们回到Autoinstaller的实际自动化部分。如果我们想要自动化安装,我们的PXE菜单项应该像这样展开:

    APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.11.1/ubuntu-20.04.1-live-server-amd64。Iso autoinstall ds=nocloud-net;s=http://10.10.11.1/preseed/cloud-init/

    在这种情况下,通过http服务器公开的cloud-init文件夹必须包含两个文件:

    • 元数据
    • 用户和数据

    元数据文件只包含一行:

    实例id: focal-autoinstall

    用户数据文件相当于预种子文件,但它是基于yaml的,而不是普通的纯文本。

    最低工作配置

    根据文档,这是用户数据文件的最小可行配置:

    # cloud-configautoinstall版本1身份主机名ubuntu密码“6美元exDY1mhS4KUYCE / 2美元zmn9ToZwTKLhCw.b4 / b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG / ygbJ1f8wxED22bTL4F46P0”用户名ubuntu

    这工作得很好,并使用基于LVM布局的磁盘配置对新系统执行基本的install + apt升级。

    我首选的最小配置:

    就我个人而言,我喜欢让无人值守的安装尽可能简单。我使用Ansible进行实际的系统配置,因此无人值机的安装过程只需要设置一个最小可行的配置。

    我想配置以下参数:

    • 在Ansible的authorized_keys文件中注入SSH公钥
    • 配置Apt设置,以指定安装期间使用哪个存储库(我运行本地debian/ubuntu镜像)
    • 在安装期间更新到最新的包

    我将给出使用新安装程序实现这一目标所需的YAML示例。

    为默认用户注入SSH公钥:

    ssh授权密钥|ssh-rsa 安装服务器真正的allow-pw没有

    注意,我们还禁用了SSH访问的密码验证。

    安装时配置APT

    我使用这个配置为安装过程和安装后的系统本身指定了一个特定的镜像。

    镜子镜子“http://mirror.mynetwork.loc”恰当的preserve_sources_list主要的-拱门amd64uri“http://mirror.mynetwork.loc/ubuntu”

    apt升级

    默认情况下,安装程序似乎会安装安全更新,但不会安装最新版本的软件。这与d-i安装程序不同,d-i安装程序在完成时总是以完全最新的系统结束。

    可以通过在安装过程结束时运行apt更新和apt升级来实现相同的最终结果。

    late-commands-Curtin in-target -target=/target - apt update-Curtin in-target——target=/target——apt upgrade -y

    所以总的来说,这没什么大不了的。

    网络配置

    网络部分可以使用常规Netplan语法进行配置。一个例子:

    网络版本2渲染器networkd以太网enp0s3dhcp4没有地址-10.10.50.200/24gateway410.10.50.1域名服务器搜索-mynetwork.loc地址-10.10.50.53-10.10.51.53

    存储配置

    安装程序只支持'direct'或'lvm'布局。它还选择系统中最大的驱动器作为启动驱动器进行安装。

    如果要设置更复杂的内容,例如可能要设置RAID或特定的分区布局,则需要使用科廷语法。

    根据现有的文档,目前还不清楚如何设置RAID配置。

    幸运的是,新的安装程序支持创建RAID配置或自定义分区布局手册安装。

    事实证明,当手动安装完成后,您可以在以下文件中找到这个特定配置的cloud-init用户数据YAML:

    /var/log/installer/autoinstall-user-data

    我认为这是非常方便

    因此,为了构建一个正确的基于raid1的安装,我遵循以下步骤这些指令

    那么这个RAID设置的YAML是什么样子的呢?

    这是我的用户数据文件的存储部分(准备好):

    存储配置-手提式gpt串行VBOX_HARDDISK_VB50546281-4e4a6c24路径sda保存的名字grub_device真正的类型磁盘iddisk-sda-手提式gpt串行vbox_harddisk_vb84e5a275 - 89 a2a956路径/dev/sdb保存的名字grub_device真正的类型磁盘iddisk-sdb-设备disk-sda大小1048576国旗bios_grub数量1保存grub_device类型分区id分区0-设备disk-sdb大小1048576国旗bios_grub数量1保存grub_device类型分区id分区1-设备disk-sda大小524288000超级块国旗数量2保存grub_device类型分区id分区2-设备disk-sdb大小524288000超级块国旗数量2保存grub_device类型分区id第3分区-设备disk-sda大小1073741824超级块国旗数量3.保存grub_device类型分区idpartition-4-设备disk-sdb大小1073741824超级块国旗数量3.保存grub_device类型分区idpartition-5-设备disk-sda大小9136242688超级块国旗数量4保存grub_device类型分区idpartition-6-设备disk-sdb大小9136242688超级块国旗数量4保存grub_device类型分区idpartition-7-的名字md0raidlevelraid1设备分区2第3分区spare_devices[]保存类型突袭idraid - 0-的名字md1raidlevelraid1设备partition-4partition-5spare_devices[]保存类型突袭idraid - 1-的名字md2raidlevelraid1设备partition-6partition-7spare_devices[]保存类型突袭idraid-2-fstypeext4体积raid - 0保存类型格式idformat-0-fstype交换体积raid - 1保存类型格式idformat-1-设备format-1路径类型idmount-1-fstypeext4体积raid-2保存类型格式idformat-2-设备format-2路径/类型idmount-2-设备format-0路径/ boot类型idmount-0

    这是一个相当长的指令列表,“只是”设置RAID1。尽管我了解所有涉及到的步骤,但我永远不会在短时间内仅使用文档来提出这个问题,所以我认为autoinstall-user-data文件是一个救星。

    在手动安装、创建RAID1镜像之后,我将上面的配置复制到我自己的自定义用户数据YAML中。然后我执行了一个无人值守的安装,第一次尝试就成功了。

    因此,如果您想将LVM添加到混合或进行一些其他复杂的存储配置,自动化它的最简单方法是首先执行一个手动安装然后将相关的存储部分从autoinstall-user-data文件复制到您的自定义用户数据文件。

    示例用户数据文件下载

    我已经发布了一个创建RAID1的工作用户数据文件在这里

    您可以通过创建带有两个(虚拟)硬盘驱动器的虚拟机来尝试。ob体育下载我假设您已经设置了PXE引导环境。

    显然,您必须更改网络设置才能使其工作。

    生成用户密码

    如果您确实希望使用默认用户登录到控制台,则必须生成salt+password散列并将其复制/过去到用户数据文件中。

    我只是使用'mkpasswd'命令来这样做:

    Mkpasswd -m sha-512

    mkpasswd实用程序是“whois”包的一部分。

    关闭的话

    对于那些仍然使用Ubuntu Server 18.04 LTS的人,不需要立即采取行动,因为这个版本一直支持到2023年。在18.04 LTS版本中,只支持新硬件。

    在某些时候,迁移到新的Autoinstall解决方案将需要一些时间和精力。也许这篇博文能帮助你转变。

    我花了几个晚上的时间来掌握新的用户数据解决方案,但事实上,手动安装基本上会产生一个完美的预先烘焙的用户数据文件3.是一个巨大的帮助。

    我想我只是错过了所有这些改进安装程序的努力,但也许我没有受到旧现有解决方案的局限性的伤害。如果你对此有任何想法,请在评论中告诉我。


    1. 我不得不在StackExchange上找到这个信息这篇很好的文章在遇到问题后。

    2. 我尝试了384mb,它没有完成,只是卡住了。

    3. /var/log/installer/autoinstall-user-data

    标记为: ob电竞
  3. ZFS:移位=9对4K扇区驱动器的性能和容量影响

    2014年7月31日星期四

    更新2014-8-23:我正在用shift测试我的新NAS。shift=9写性能从1.1 GB/s下降到830 MB/s,池中只有16 TB的数据。我还注意到恢复速度非常慢。这就是为什么我决定放弃我的24盘RAIDZ3配置。

    我知道驱动器在盘的外部更快,在盘的内部更慢,但性能急剧恶化,我不想继续下去。

    我的最终设置将是RAIDZ2 18驱动器VDEV + RAIDZ2 6驱动器VDEV,这将给我“只有”71 TiB的存储空间,但读性能为2.6 GB/s,写性能为1.9 GB/s。我已经写了大约40+ Ti欧宝体育直播官网B到数组,在这40 TiB之后,写性能大约是1.7 GB/s,所以仍然非常好,我期望驱动器填满。

    因此,实际上,基于这些结果,我学会了不要过多地偏离ZFS最佳实践。使用shift=12并将驱动器放入遵守2^n+奇偶校验规则的VDEVS中。

    不均匀的vdev(18个磁盘vs. 6个磁盘)并不符合最佳实践,但ZFS很聪明:它根据vdev的大小在vdev之间分配数据。所以它们相等地填满。


    对于4K扇区驱动器,shift=9和shift=12之间的选择并不总是明确的情况。您必须在原始性能和存储容量之间做出选择。

    我的测试平台是Debian Wheezy和Linux上的ZFS。我使用的是RAIDZ3中包含24 x 4 TB驱动器的系统。驱动器的本机扇区大小为4K,数组的格式为shift=12。

    首先,我们像这样创建数组:

    Zpool create storage -o shift=12 raidz3 /dev/sd[abcdefghijklmnopqrstuvwx]

    注意:永远不要使用/dev/sd?数组的驱动器名称,这只是为了测试,总是使用/dev/disk/by-id/ names。

    然后我们用dd运行一个简单的顺序传输基准测试:

    root@nano:/storage# dd if=/dev/zero of= ashhift12 .bin bs=1M count=100000 100000+0条记录在100000中拷贝+0条记录出104857600000 bytes (105gb), 66.4922 s, 1.6 GB/s root@nano:/storage# dd if= ashhift12 .bin of=/dev/null bs=1M 100000+0条记录在100000中拷贝+0条记录出104857600000 bytes (105gb), 420.0371 s, 2.5 GB/s

    这令人印象深刻。以这些速度,您可以饱和10Gbe以太网。但是我们有多少存储空间呢?

    df - h:

    文件系统大小使用利用率使用%挂载存储69T 512K 69T 1% /存储

    zfs列表:

    NAME USED AVAIL REFER MOUNTPOINT存储1.66M 68.4T 435K /存储

    只有68.4 TiB的存储空间?这可不太好。应该有24个驱动器减去3个奇偶校验是21 x 3.6 TiB = 75 TiB的存储。

    所以性能很好,但不知何故,我们丢失了大约6tib的存储空间,比整个驱动器还多。欧宝体育直播官网

    如果你用shift=9创建同样的数组会发生什么?

    Zpool create storage -o shift=9 raidz3 /dev/sd[abcdefghijklmnopqrstuvwx]

    这些是基准:

    root@nano:/storage# dd if=/dev/zero of= ashhift9 .bin bs=1M count=100000 100000+0条100000条记录+0条记录拷贝出104857600000字节(105gb), 97.4231 s, 1.1 GB/s root@nano:/storage# dd if= ashhift9 .bin of=/dev/null bs=1M 100000+0条100000条记录+0条记录拷贝出104857600000字节(105gb), 42.3805 s, 2.5 GB/s

    所以我们损失了大约三分欧宝体育直播官网之一的写性能,但读性能没有受到影响,可能是预读缓存造成的,但我不确定。

    对于shift=9,我们确实会损失一些写入性能,但我们仍然可以饱和10Gbe。

    现在看看可用存储容量发生了什么变化:

    df - h:

    文件系统大小已使用可用使用%挂载在存储器74T 98G 74T 1% /存储器

    zfs列表:

    名称使用AVAIL参考挂载点存储271K 73.9T 89.8K /存储

    现在我们的容量是74tib,所以我们只是在shift=9 / shift=12的情况下获得了5tib,代价是一些写性能。

    因此,如果您真的关心顺序写性能,shift=欧宝体育直播官网12是更好的选择。如果存储容量更重要,shift=9似乎是4K驱动器的最佳解决方案。

    shift=9在4K驱动器上的性能总是被描述为“可怕”,但我认为最好运行自己的基准测试并自行决定。

    警告:我对基准性能非常确定。欧宝体育直播官网根据df -h或zfs列表,我不能100%确定报告的空闲空间有多可靠。

    编辑:我添加了一些我自己对结果的看法。

    标记为: ZFS ob电竞

第1 / 5页

Baidu
map