目 录CONTENT

文章目录

Hetzner独立服务器(拍卖机)测评及折腾不完全指南

咕咕
2023-08-24 / 0 评论 / 1 点赞 / 1203 阅读 / 18549 字
温馨提示:
本文最后更新于 2024-02-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

咕咕斥巨资买了一台Hetzner的独立服务器(拍卖机),官方售价27.7欧/月。

image.png

下面就来简单测评一下,供大家参考。

关于Hetzner的介绍,大家可以移步至:【VPS 选购分享】Hetzner—— 欧洲阿里云!性能小钢炮!非常适合跑业务,还有适合刷 PT 的神鸡!

概览

首先还是请出秋水的 bench.sh 脚本,这个脚本可以查看 Linux 系统信息,还可以测试网络带宽及硬盘读写速率。

wget -qO- bench.sh | bash

运行后如图:

image.png

上图第一部分就是 Linux 的详细信息,可以看到 CPU 型号、8核心、内存64G、硬盘买的时候是说512Gx2也就是1T(但是显示是936.7G)、Dedicated 杜甫、Hz自建机房,机房位置纽伦堡等信息。

第二部分也就是硬盘读写速率,硬盘一般分为 HHD、SSD、NVMe 三类, 正常 SSD 硬盘的 IO 一般在 300MB/S 左右,差一点 200MB/S 左右,100MB/S 以下这种的就是石头盘了,没法用。这边咕咕的是NVMe的盘,正常应该就是900-1000MB/S。

第三部分就是上传下载速率了,这个可以看出服务器的带宽,上传下载的速率,这个机器是 1G 口的基本也跑满了,国内稍微有点差。

总结一下,上面大家要注意的几个点:

1、如果是VPS,虚拟方式一定注意是不是 KVM,因为有些商家用的 OpenVZ 虚拟技术而故意不说明,OpenVZ 的缺点是不能修改内核也就不能开启 BBR 和可以随意超售。独立服务器的话,一般就是显示Dedicated了。

2、硬盘的 IO 差,一般是因为母鸡超售过多造成了,看 IO 数值就可以看出 VPS 有没有超售。独立服务器的话没有超售一说,如果你选的HDD硬盘(假设两块硬盘),觉得IO速度实在过低,还可以选择组raid 0,这样速度会翻倍,但是raid 0 只要有一块硬盘坏了,数据都会丢失,这个得权衡考量。

3、Speed 测速可以直观地看出 VPS 的带宽,一般G口就是 1000Mbps,百兆口也就是 100Mbps,10G 口也就是高于10000Mbps

线路测试

线路测试包括去程和回程,去程是针对的上传数据,回程一般是指下载数据也就是 VPS 回传数据。因此一个 IP 的路由好坏,看回程才有参考价值,去程反而不是那么重要了。

下面就看看回程路由:

回程测试

wget -qO- git.io/besttrace | bash
image.png

这个机器电信回程是直连的,移动和联通脚本问题没测,回程应该不是很理想,线路不咋地,这也是这台机器最大的缺点。(一般这种情况下,会考虑套CloudFlare的CDN使用,所谓带上套,大家都一样,众生平等。)

去程测试

下面看看去程,一般来说流量是不对等的,回复流量基本上是请求流量的数倍。

就比如,你浏览本站的文章,点击一个网址就可以了,电脑把网址发到本博位于国外的服务器,数据一般小于 1KB。但是本站回复你文章内容,里面的文字、图片、脚本等各种资源,压缩后至少也是几十KB,这个过程中去程和回程数据有数倍的差异。如果你看的是油管的视频,出国的流量可能就几兆,但是传过来的视频可能上G,数据相差上百倍。

所以你应该明白了上面为什么说去程没啥参考价值,因为它压根就不堵。当然,既然写到了去程这个话题,还是留下测试去程的方法:

打开下面的网址,左边选择你附近的服务器,然后右边填上你的 VPS IP 就可以查看去程路由了:

https://tools.ipip.net/traceroute.php

上海电信

image.png 上海联通 image.png 上海移动 image.png

ping值查询

当然,不能忘了各运营商的 ping 值查询,这算是一个直观且简单的查询方式,如图,如果下面国内部分全线飘红,说明丢包严重,ping 值亚洲 VPS 在 100ms 左右属正常范围,美帝 VPS 在 250ms 左右属正常范围,欧洲在250-300ms左右。

当然,这些数值受时段的影响比较大,建议北京时间 22:00 - 23:00 高峰期(俗称晚高峰)测试。

https://ping.pe

image.png

国内惨不忍睹 = =

CPU性能测试

还是请出秋水的 UnixBench 脚本来测试。

UnixBench 是一个类 Unix 系(Unix,BSD,Linux)统下的性能测试工具,一个开源工具,被广泛用与测试 Linux 系统主机的性能。UnixBench 的主要测试项目有:系统调用、读写、进程、管道、运算、C库等系统基准性能提供测试数据。

wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh && chmod +x unixbench.sh && ./unixbench.sh

上面脚本运行需要1个小时左右,运行完会显示类似下面的数据:

image.png image.png

上部分是单核跑分数据,下部分是多核跑分数据。VPS的话单核跑分有500分以上属于正常水平,低于500分就属于性能很弱了。这边独立服务器跑这个分还凑合。

取消RAID

默认两块硬盘的话,Hz会自动给你装raid1,即只有一块硬盘的容量,另一块硬盘相当于是备份用的,如果不是特别重要的数据的话,一般会考虑不组raid,这样我们硬盘空间就能完整利用起来了。(除非你是刷PT,不然不建议组raid0)

首先进入Hetzner的控制后台,找到服务器,选择Rescue (救援模式),设置完成后重启服务器:

db415600eb005d470c09fd338f7f27be.png 236306b87b7c8295cc25c721d6a46561.png 5c7acaad58ed198ac754cb94e74f614a.png

重启完成后登录服务器,现在看到的就是救援模式;

9dc758f8e60573ffe32cdf0e1fb44dd6.png

在救援模式下输入下面命令后按回车

installimage

然后选择你需要安装的系统

06c362326cabb91bd216ae76ee798f14.png 8d9d81282bce722db89e7e7ac4e50ec7.png c461ed3a9c975677bd038f827098197c.png

选择完成后编辑配置文件;

abdc141b5e5dfc486318cbf763ce1f9e.png d0f924a8fd74f22a9dbe66fb0ca95c86.png

RAID设置区分

NO RIAD:一般情况建议不设置RAID,这样既保证空间大小,也保证了安全性.;
RIAD 0:好处:速度快,合并容量,缺点:两个硬盘只要挂一个,那么文件全都挂了;
RIAD 1:好处:同时把文件写入到两个硬盘,坏一个也没事,缺点:浪费空间,读写速度稍微有降低;

编辑完成后按F10 保存配置文件;

c19dc65b5c83a0c3d03ab736157776d6.png

选择yes回车

6e66366167554e244f22932995008919.png

等待程序执行完毕:

4f76ddbe0e13c78abc3292f036583b8d.png

程序执行完成后输入reboot重启即可:

be0a4c045730c8b0514dc9bd992b685e.png

重启后登录新系统可以查看之前的分区情况

d5505acc2f1effc967dd3f2bebb34fa3.png

RAID 0RAID 1的测试对比

RAID 0

87c7f18154d25fd529849906175821b2.png

RAID 1

25a31dcba8adf129773f98274fea79bc.png

无RAID

adbfd0ca48584412ad41baa6bb7a8fbf.png

installimage命令一把梭

上面的方法是图形化一步一步来搞的,其实你也可以直接用一条命令直接自动安装。

还是利用官方的installimage命令。

一般你想要知道一个命令支持哪些参数,都可以用命令 -h或者命令 --help来查看。

比如

installimage -h 或者 installimage --help

以下是installimage命令的参数:

这是 installimage 的使用说明,该脚本支持多种参数,以下是每个参数的简要描述:

  1. -h: 显示帮助信息。
  2. -a: 自动模式 / 批处理模式 - 结合下面的选项使用可以无需进一步交互地进行安装。
  3. -c <configfile>: 使用指定的配置文件进行自动设置。
  4. -x <post-install>: 使用此文件作为安装后脚本,安装完成后在 chroot 环境中执行。
  5. -n <hostname>: 设置指定的主机名。
  6. -r <yes|no>: 是否激活软件 RAID。
  7. -l <0|1|5|6|10>: 设置指定的 RAID 级别。
  8. -i <imagepath>: 使用指定的 IMAGE 进行安装。
  9. -g: 强制验证带有分离的 GPG 签名的图像文件。如果图像无效,安装将中止。
  10. -p <partitions>: 定义要创建的分区。
  11. -v <logical volumes>: 定义要创建的逻辑卷。
  12. -d <drives>: 要使用的驱动器的 /dev 名称。
  13. -f <yes|no>: 是否格式化第二块驱动器(如果不用于 RAID)。
  14. -s <de|en>: 用于不同事务的语言(例如 PLESK)。
  15. -z PLESK_<Version>: 安装像 PLESK 这样的可选软件。
  16. -K <path/url>: 从文件/URL 安装 SSH 密钥。
  17. -t <yes|no>: 接管救援系统的 SSH 公钥。
  18. -u <yes|no>: 是否允许 USB 驱动器。
  19. -G <yes|no>: 是否生成新的 SSH 主机密钥(默认为 yes)。

这些选项允许用户在不进入交互式模式的情况下,通过指定适当的参数来自动化服务器的安装过程。在实际使用中,您需要根据具体需求选择和组合这些参数。

installimage命令设置raid安装

直接对话ChatGPT,让它帮个小忙。

问:

`installimage -n hostname -a -r 0 -d sda,sdb -p /boot:ext3:1024M,/:ext4:all -i /root/images/Debian-1101-bullseye-amd64-base.tar.gz`所以这个命令写的有问题吗

答:

让我们逐一检查您给出的 installimage 命令的参数:

  1. -n hostname: 设置主机名为 "hostname"。
  2. -a: 启用自动模式。
  3. -r 0: 指定 RAID 类型为 RAID 0。
  4. -d sda,sdb: 指定两个设备 /dev/sda/dev/sdb 用于 RAID 0。
  5. -p /boot:ext3:1024M,/:ext4:all: 分区信息,其中 /boot 分区使用 ext3 文件系统大小为 1024M,/ 根分区使用 ext4 文件系统,占据所有剩余空间。
  6. -i /root/images/Debian-1101-bullseye-amd64-base.tar.gz: 指定安装镜像路径。

从给出的使用说明中,这些参数似乎都是正确的。但有一点需要注意:

在使用 RAID 0 时,您指定了 -r 0,这是正确的,但根据使用说明,还需要指定 RAID 级别 -l。尽管在您的命令中没有明确使用 -l,但由于您使用了 -r 0,这可能意味着 RAID 0 是默认选项。然而,为了确保没有遗漏或误解,建议明确指定 RAID 级别,即添加 -l 0

所以,更完整的命令可能是:

installimage -n hostname -a -r yes -l 0 -d sda,sdb -p /boot:ext3:1024M,/:ext4:all -i /root/images/Debian-1101-bullseye-amd64-base.tar.gz

但再次,这取决于 installimage 的具体实现和版本。上述命令应该是正确的,但在真正执行之前,建议再次检查您的具体环境和文档以确保一切正确。

installimage命令不设置raid安装

同理,如果你不想做raid,假设你有sda、sdb还有一块nvme0n1,你打算把系统装在nvme0n1上(靠谱一些),然后把sda和sdb当作存储盘之后单独挂载,你可以用诸如下面的命令:

installimage -n hz -a -d nvme0n1 -p /boot:ext3:1024M,/:ext4:all -i /root/images/Debian-stable-64-minimal.tar.gz

这个路径可能要根据实际情况修改一下/root/images/Debian-stable-64-minimal.tar.gz

你可以在救援模式中输入:

ls -al /root/images/

查看你想要的系统版本然后替换到上面命令中。

这样你安装完之后,系统就在nvme0n1盘上了,另外两块硬盘需要你手动格式化并挂载。

硬盘挂载

好的,下面是详细的步骤,描述如何为 /dev/nvme1n1 创建一个分区并挂载它。请注意,这些操作可能导致数据丢失,所以在开始前,请确保已备份所有重要数据。

这边以nvme1n1这块硬盘为例子,有可能你的是/dev/sdb/dev/sda 这种,其实是一样的,以此类推。

具体你的硬盘叫啥,可以登录到救援模式查看(一登录成功上方就有提示)

image-20230824181616538

1. 创建分区

使用 fdisk 命令为 /dev/nvme1n1 创建一个新分区。

sudo fdisk /dev/nvme1n1

fdisk 命令界面:

  1. 输入 p 并回车,以查看现有分区。
  2. 输入 n 并回车,开始创建新分区。
  3. 选择分区类型(主分区或逻辑分区)。通常,输入 p 选择主分区。
  4. 选择分区号。通常情况下,默认选项应该是可以的。
  5. 为起始和结束扇区选择默认值,这将使用整个磁盘。
  6. 输入 w 并回车,写入分区表并退出。

2. 格式化分区

假设你创建的分区是 /dev/nvme1n1p1(这取决于你之前的选择和现有分区),你可以使用以下命令将其格式化为 ext4 文件系统:

sudo mkfs.ext4 /dev/nvme1n1p1

3. 挂载分区

首先,创建一个挂载点:

sudo mkdir /mnt/mydrive

然后,挂载新分区到这个挂载点:

sudo mount /dev/nvme1n1p1 /mnt/mydrive

4. 开机自动挂载

要使得每次开机都自动挂载这个分区,需要修改 /etc/fstab 文件。首先,获取 UUID:

sudo blkid

找到 /dev/nvme1n1p1 的 UUID。接着,编辑 /etc/fstab

sudo nano /etc/fstab

在文件的底部添加以下内容(替换你的 UUID):

UUID=你的UUID  /mnt/mydrive  ext4  defaults  0  2

保存并退出。

这样,每次启动时,新分区都会自动挂载到 /mnt/mydrive

以上就是创建、格式化和挂载新分区的步骤。确保每一步都仔细检查,避免任何可能的错误。

合并sda和sdb(使用 LVM 将 sda 和 sdb 合并为一个逻辑卷)

假如想要把sda和sdb合并成一个硬盘,挂载,你可以:

问:

我有一块nvme0n1,还有sda,sdb,我想把系统安装在nvme0n1上,然后把sda和sdb合并成一块硬盘,用来存放文件,我是不是要定义要创建的逻辑卷?请问我应该怎么做,帮我写一个完整的安装脚本

答:

为了满足您的需求,我们可以使用以下策略:

  1. 将操作系统安装在 nvme0n1 上。
  2. 使用 LVM 将 sdasdb 合并为一个逻辑卷并用于存储。

以下是您可以使用的 installimage 命令:

installimage -n hostname -a -d nvme0n1 -p /boot:ext3:1024M,/:ext4:all -i /root/images/Debian-1101-bullseye-amd64-base.tar.gz

此命令将 Debian 11.01 Bullseye 安装在 nvme0n1 上,其中 /boot 使用 ext3 文件系统,大小为 1024M,根 / 使用 ext4 文件系统,占据所有剩余空间。

安装操作系统后,您可以使用以下步骤将 sdasdb 合并为一个 LVM 逻辑卷:

  1. 创建物理卷:
pvcreate /dev/sda
pvcreate /dev/sdb
  1. 创建一个名为 myvg 的卷组,其中包含 sdasdb
vgcreate myvg /dev/sda /dev/sdb
  1. 使用上面创建的卷组创建一个名为 mylv 的逻辑卷,占据所有可用空间:
lvcreate -l 100%FREE -n mylv myvg
  1. 格式化逻辑卷并挂载它:
mkfs.ext4 /dev/myvg/mylv
mkdir /data
mount /dev/myvg/mylv /data
  1. 为了确保每次启动时都能自动挂载,需要在 /etc/fstab 中添加一行:
echo "/dev/myvg/mylv /data ext4 defaults 0 0" >> /etc/fstab

以上步骤在操作系统安装后执行,可以将它们写入一个脚本中,然后在安装操作系统后手动运行。或者,您可以使用 installimage-x 参数指定一个脚本,该脚本将在安装后自动执行上述步骤。

以下是一个脚本,名为 post_install.sh,用于在操作系统安装后设置和挂载逻辑卷:

#!/bin/bash

# 创建物理卷
pvcreate /dev/sda
pvcreate /dev/sdb

# 创建一个名为 `myvg` 的卷组
vgcreate myvg /dev/sda /dev/sdb

# 使用上面创建的卷组创建一个名为 `mylv` 的逻辑卷
lvcreate -l 100%FREE -n mylv myvg

# 格式化逻辑卷
mkfs.ext4 /dev/myvg/mylv

# 创建数据目录并挂载逻辑卷
mkdir /data
mount /dev/myvg/mylv /data

# 更新 /etc/fstab 以在启动时自动挂载逻辑卷
echo "/dev/myvg/mylv /data ext4 defaults 0 0" >> /etc/fstab

您可以将上述脚本保存为 post_install.sh,然后为其赋予执行权限:

chmod +x post_install.sh

然后,您可以使用以下 installimage 命令:

installimage -n hostname -a -d nvme0n1 -p /boot:ext3:1024M,/:ext4:all -i /root/images/Debian-1101-bullseye-amd64-base.tar.gz -x /path/to/post_install.sh

请确保将 /path/to/ 替换为您保存 post_install.sh 脚本的实际路径。

这样,当 installimage 完成操作系统的安装后,它将自动运行 post_install.sh 脚本来设置和挂载逻辑卷。

救援模式恢复密码

如果您在Hetzner使用独立服务器(Dedicated Server)并且忘记了root登录密码,您可以通过以下步骤重置密码:

  1. 登录Hetzner Robot控制面板:
    打开浏览器,访问 Hetzner Robot,然后登录您的账户。

  2. 选择您的服务器:
    在控制面板中,找到并选择您需要重置密码的服务器。

  3. 启动救援系统:
    在服务器的管理页面上,找到“Rescue”或“救援系统”选项并启动它。Hetzner的救援系统允许您启动一个小型的Linux环境,这样您就可以访问服务器的硬盘并对其进行操作。

  4. 重启服务器到救援系统:
    一旦您启动了救援系统,需要重新启动服务器以进入该系统。您可以在Robot控制面板中找到并点击“重启”按钮。

  5. 通过SSH登录到救援系统:
    当服务器重启并运行救援系统时,您应该能够使用提供的SSH凭据(通常是root和一个临时密码)登录到服务器。

  6. 挂载服务器的文件系统:
    一旦您登录到救援系统,您需要挂载服务器的主文件系统。这通常可以通过以下命令完成(假设您的根文件系统在/dev/sda1上):

    mount /dev/sda1 /mnt
    

注意,如果取消挂载,试另一块硬盘的话,可以先执行:

unmount /mnt
  1. 重置root密码:
    挂载文件系统后,您可以使用chroot命令更改root密码。如下:

    chroot /mnt
    passwd root
    

    按照提示输入新的密码。

  2. 重启服务器到主系统:
    一旦您完成了密码重置,退出chroot环境,然后从救援模式重启服务器回到主系统。您可以在Robot控制面板中完成这一步。

  3. 登录并测试新密码:
    当服务器重启并运行主系统时,尝试使用新的root密码登录。确保您可以成功登录并且所有服务都在正常运行。

请注意,这些步骤是基于Hetzner的独立服务器的通常操作。具体的步骤可能会因Hetzner的系统更新或其他原因而有所不同。如果您遇到任何问题,建议联系Hetzner的技术支持以获得更多帮助。

输入:

lsblk

输出:

image.png

从您提供的 lsblk 输出来看:

  • sda 磁盘只有一个分区 sda1,大小为 476.9G,目前已经挂载到 /mnt
  • sdb 磁盘有三个分区:
    • sdb1 大小为 32G
    • sdb2 大小为 1G
    • sdb3 大小为 443.9G

这里的关键是确定哪一个分区是您的根文件系统。考虑到 sda1 已经挂载到 /mnt,您可能已经检查了它。但我们还需要检查 sdb 的分区,尤其是 sdb3,因为它的大小与一个主要的文件系统相匹配。

下面是如何检查 sdb 的分区:

  1. 挂载并检查 sdb1:

    mount /dev/sdb1 /mnt
    ls /mnt
    

    如果这里有 bin, etc, home, root, usr 等目录,那么这可能是您的根文件系统。

  2. 如果 sdb1 不是根文件系统,尝试挂载并检查 sdb3:

    umount /mnt
    mount /dev/sdb3 /mnt
    ls /mnt
    

    同样,查找典型的根文件系统目录。

您提供的信息不足以确定哪个分区是引导分区或是否有单独的 /home 分区,但上述步骤应该可以帮助您确定哪个是根文件系统。如果您还不确定,请告诉我您在每个分区上看到的主要目录,这样我可以为您提供更多的指导。

参考资料

SunPma'Blog:https://sunpma.com/656.html
主机会话:https://hostalk.net/posts/vps_test.html
https://www.openos.org/post/196/
https://wiki.hetzner.de/index.php/Installimage/en

1
广告 广告

评论区