我将在下面附上最小化的测试用例。但是,它是一个简单的 Dockerfile,具有以下几行:
VOLUME ["/sys/fs/cgroup"]
CMD ["/lib/systemd/systemd"]
Run Code Online (Sandbox Code Playgroud)
它是基于 Debian:buster-slim 的映像,并在容器内运行 systemd。实际上,我曾经像这样运行容器:
$ docker run --name any --tmpfs /run \
--tmpfs /run/lock --tmpfs /tmp \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro -it image_name
Run Code Online (Sandbox Code Playgroud)
在我升级一堆主机 Linux 软件包之前,它曾经运行良好。主机内核/systemd 现在似乎默认 cgroup v2。之前是cgroup。它停止工作。但是,如果我提供内核选项以便主机使用 cgroup,则它会再次运行。
在不提供内核选项的情况下,修复是添加--cgroupns=host到docker run除了/sys/fs/cgroup以读写方式安装(:rw代替:ro)之外。
我想避免强迫用户提供内核选项。尽管我远非专家,但强制为 docker 容器使用主机命名空间对我来说并不合适。
我试图理解为什么会发生这种情况,并弄清楚应该做什么。我的目标是在 docker 中运行 systemd,其中主机遵循 cgroup v2。
这是我看到的错误:
$ docker run --name any --tmpfs /run --tmpfs /run/lock --tmpfs /tmp \
-v /sys/fs/cgroup:/sys/fs/cgroup:rw -it image_name
systemd 241 running in system mode. (+PAM +AUDIT …Run Code Online (Sandbox Code Playgroud) 我在带有Dell PowerEdge RAID 控制器 (PERC) H730 迷你硬件 RAID 控制器和八个 3TB 7.2k 3.5" SAS 硬盘的Dell PowerEdge R730上安装Proxmox 虚拟环境。我正在考虑使用 PERC H730 配置六个物理磁盘作为一个 RAID10 虚拟磁盘,其中两个物理磁盘保留为热备驱动器。但是,ZFS和 HW RAID之间似乎存在相当多的混淆,我的研究给我带来了混淆而不是清晰。
如果这些应该是单独的 ServerFault 问题,请告诉我。
我发现了以下类似的 ServerFault 问题,但这些问题似乎并没有直接解决上述问题。虽然,我完全承认我不是全职系统管理员,所以也许他们解决了我的问题,而我只是超出了我的深度。
因此,我正在运行一个在日志中显示此内容的容器:
警告 overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败。要解决此问题,请将“vm.overcommit_memory = 1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。
我一生的大部分时间都在 Windows 中度过,我对 Linux 大约 80% 是一无所知的,据我所知,当设置此设置时,它会在系统范围内进行,这也会影响所有其他容器。我想这样做吗?
有没有办法只为推荐它的容器设置这个?我应该补充一下,如果有帮助的话,我正在 WSL2 模式下运行 docker 桌面。
更新:根据他的评论中的要求,我添加了这个问题所涉及的容器;它被称为Papermerge。
我有这两项服务,一项是Google启动脚本服务,第二项是redis服务,我想在启动脚本服务启动并完成后启动redis服务,我有以下systemd配置,但我的redis服务无法启动有了这些配置
google-startup-scripts.service
[Unit]
Description=Google Compute Engine Startup Scripts
After=network-online.target network.target rsyslog.service
After=google-instance-setup.service google-network-daemon.service
After=cloud-final.service multi-user.target
Wants=cloud-final.service
After=snapd.seeded.service
Wants=snapd.seeded.service
[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/google_metadata_script_runner --script-type startup
KillMode=process
Type=oneshot
StandardOutput=journal+console
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
redis.service
[Unit]
Description=Redis In-Memory Data Store
After=google-startup-scripts.service
[Service]
Type=notify
PIDFile=/run/redis-6378.pid
ExecStart=/usr/bin/redis-getdevice /etc/redis-getdevice/6378.conf
ExecStop=/usr/bin/redis-cli -p 6378 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
一旦 google-startup-script.service 运行并执行操作并进入退出状态。并且 redis 服务根本没有启动(我After在单元中使用)我在这里做错了什么
我为一个小型非营利组织管理一个由 10 个工作站组成的网络(此外,我非常缺乏经验,如果这是一个愚蠢的问题,请原谅我),并且一切都被管理,就好像它们是多人使用的家用 PC 一样,在一些工作站甚至由少数员工共享一个用户。
我正在考虑引入 Active Directory 来管理用户帐户,但我们目前没有 Windows 服务器。买了几个Synology Disk Station,我想知道我是否可以在上面部署AD?或者是否需要 Windows Server 操作系统?
搜索结果 我发现所有关于将 Linux 服务器或磁盘站“集成”到 AD 域中,而不是将其用作域控制器的说法。
我继续参考以下站点进行工作\n(我不使用 EKS。我使用 kops 在 ec2 上创建 k8s)
\n\n当我尝试打电话时,kubectl get service我收到消息:error: You must be logged in to the server (Unauthorized)
这是我所做的:
\n设置IAM用户(创建用户并添加角色)
\n集群状态存储(S3)
\n准备本地环境
\nexport NAME=myfirstcluster.example.com \nexport KOPS_STATE_STORE=s3://prefix-example-com-state-store\nRun Code Online (Sandbox Code Playgroud)\n创建集群配置kops create cluster--zones=us-west-2a${NAME}
构建集群kops update cluster ${NAME} --yes
\xe2\x98\x85成功\xe2\x98\x85
\nkubectl get nodes,我不断收到错误:You must be logged in to the server (Unauthorized) …还有其他人看到 UCEPROTECT uceprotect[.]net 黑名单中列出的主机数量大幅增加吗?在过去的几个月里,我在各种主要云提供商上找到了一些主机,这些主机根本不发送电子邮件,并且被列入“黑名单”之类的勒索行为中。当我查看网络块的其余部分时,UCEPROTECT 似乎只是不加区别地列出了整个网络。
更糟糕的是,他们没有公平的驱逐政策。他们要求您付费才能删除,即使您从未发送过一条垃圾邮件。更糟糕的是,付款是连续的,而不是一次性的。因此,即使您从未发送过垃圾邮件,该“服务”也需要持续付款。看起来更像是勒索诈骗,而不是“黑名单”服务。
还有人见过这个胡言乱语吗?
journalctl -u ssh打印与 ssh 单元关联的所有记录。但是我怎样才能获得与 ssh 单元无关的所有记录呢?不起作用的事情:journalctl -u '!ssh'; journalctl '!_SYSTEMD_UNIT=ssh'; journalctl '_SYSTEMD_UNIT!=ssh'。文档并不表明这是可能的,但我仍然充满希望。;-)
我有一个 zpool 现在在断电重新启动服务器和设备名称后显示为 FAULTED 状态。我知道我通过按设备名称添加 vdevs 搞砸了,但不知道它可以在创建和填充池后更改。目前,池正在寻找“/dev/sde”(而不是“/dev/sdc”),“/dev/sde”是根 fs 所在的设备,我不知道如何在不进行任何恢复的情况下进行恢复更糟糕。
希望有一种方法可以简单地重新配置 zpool 以使用“sdc”,以便能够使用“by-id”命名导出和重新导入,以避免将来发生这种情况。
root@boxey:~# zpool status
pool: data
state: FAULTED
status: One or more devices could not be used because the label is missing
or invalid. There are insufficient replicas for the pool to continue
functioning.
action: Destroy and re-create the pool from
a backup source.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
scan: none requested
config:
NAME STATE READ WRITE CKSUM
data UNAVAIL 0 0 0 insufficient replicas
raidz1-0 UNAVAIL 0 0 0 insufficient replicas …Run Code Online (Sandbox Code Playgroud) systemd-tmpfiles 服务似乎没有清理这些文件夹,因为其中有/tmp/systemd-private-*-httpd.service-*/tmp/27 天前的文件(上次重新启动 httpd 时)。如果我/usr/lib/tmpfiles.d/tmp.conf正确读取文件,那么内部 tmp 目录应该每 10 天清理一次,因为对v /tmp 1777 root root 10d吗X /tmp/systemd-private-%b-*/tmp?我相信我读到的那个人说X不要删除目录,而是删除其中的所有内容。
我的 systemd-tmpfiles-clean.timer 服务设置OnBootSec=15min为OnUnitActiveSec=1d
那么我是否正确理解了这一点,或者是否有其他服务负责清理该目录,或者..是否有什么东西坏了?蒂亚!
systemd ×4
docker ×3
zfs ×2
amazon-ec2 ×1
amazon-eks ×1
apache-2.2 ×1
centos ×1
centos7 ×1
cgroup ×1
dell-perc ×1
dsm ×1
httpd ×1
journalctl ×1
kubernetes ×1
logging ×1
memory ×1
scam ×1
settings ×1
ubuntu-18.04 ×1
windows ×1
zfsonlinux ×1
zpool ×1