我创建了一个 QEMU 虚拟机,打算安装 Ubuntu Server 20.04。主机是 Proxmox 6.x Debian 系统。虚拟机参数为:
注意:对于 Linux 5.x 来宾,这些是 VM 创建对话框中的所有 Proxmox 默认值。
一旦我启动了 VM,就会出现一个 Ubuntu 屏幕。然后,出现以下错误:
Initramfs unpacking failed: write error
Failed to execute /init (error -2)
Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin-guide/init.rst for guidance.
Run Code Online (Sandbox Code Playgroud) 我发现当系统内存不足时,磁盘IO使用率会很高。
这似乎多少进程正在阅读从硬盘疯狂地(查看htop下面的输出)。当我杀死一个使用太多内存的进程时,为系统释放一些内存。IO 使用率下降到正常状态。
该问题可以通过编写一个消耗大量内存的程序来重现,直到机器上没有足够的内存。当你杀死那个正在运行的程序时,一切都会恢复正常。
我知道交换的 os 机制。但似乎整个时间都没有使用交换(检查free和vmstat输出如下)。
? free -h
total used free shared buff/cache available
Mem: 859Mi 692Mi 60Mi 25Mi 106Mi 36Mi
Swap: 0B 0B 0B
Run Code Online (Sandbox Code Playgroud)
? htop
PID RES SHR CPU% MEM% TIME+ DISK READ DISK WRITE DISK R/W Command
6386 37316 5380 0.7 4.2 10:40.07 14.96 M/s 0.00 B/s 14.96 M/s ahdbserver-1.3.2-SNAPSH
23252 17880 15748 0.0 2.0 0:01.24 7.91 M/s 0.00 B/s 7.91 M/s postgres -D /var/lib/po
29428 …Run Code Online (Sandbox Code Playgroud) 我只在服务器和客户端上运行 nfs4。我不确定最近更改了什么,但我无法再挂载以前能够挂载的导出文件系统。我刚刚将客户端计算机从 Fedora 31 升级到 32...但我发誓升级后 nfs 仍然可以立即工作。
在客户端我做:
# mount /foo
mount.nfs4: Protocol not supported
Run Code Online (Sandbox Code Playgroud)
尚未/etc/fstab更改。处尚未安装任何内容/foo。mount.nfs4我手动发出相同的结果。
在客户端使用wireshark,我可以看到绝对没有任何内容发送到nfs服务器(或从同一服务器接收)。使用 tcpdump,从客户端重新启动之前到尝试挂载之后,我在服务器端看不到任何内容。所以我猜这是一个客户端问题?
我在日志中看不到任何内容。我找不到任何东西来结束客户端安装的日志记录级别。
谁能告诉我如何发现客户正在做什么(或没有做什么)?
按照要求...
dmesg提及 nfs|NFS:
[ 7.987799] systemd[1]: Starting Preprocess NFS configuration convertion...
[ 7.993220] systemd[1]: nfs-convert.service: Succeeded.
[ 7.993342] systemd[1]: Finished Preprocess NFS configuration convertion.
[ 12.484481] RPC: Registered tcp NFSv4.1 backchannel transport module.
Run Code Online (Sandbox Code Playgroud)
在fstab客户端:
foo:/ /foo nfs4 noauto,sec=sys,proto=tcp,clientaddr=xx.xx.xx.xx,port=1001 0 0
Run Code Online (Sandbox Code Playgroud)
客户端有多个IP。服务器希望掩盖它提供 nfs 的事实。为了使它更容易,它只支持 nfs4。netstat服务器上的FWIW给出(为了清晰起见进行了编辑):
Prot R-Q S-Q Local …Run Code Online (Sandbox Code Playgroud) 将 Elastic Beanstalk 与 Amazon Linux 2 结合使用,我尝试为部署(代码部署)和配置部署执行相同的挂钩,而不必在两个不同的位置复制我的代码。
\n根据AWS文档, eb将在.platform/hooks/prebuild部署初始步骤中运行挂钩,但将在.platform/confighooks/prebuild,但在配置部署时将运行挂钩。
我的文件看起来像这样。
\n.platform\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hooks\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 prebuild\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 00_hookname.sh\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 01_hookname.sh\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 99_basic_auth.sh\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 httpd\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 conf.d\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 elasticbeanstalk\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 directory.conf\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 hardening.conf\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 headers.conf\nRun Code Online (Sandbox Code Playgroud)\n我正在尝试找到一种方法来运行 99_basic_auth.sh 进行部署并配置部署,而无需复制该代码。
\n我有什么办法可以实现这一目标吗?
\n干杯!
\n我正在尝试将Where-Object FilterScript 脚本块放入变量中,但到目前为止我还没有运气。作为我正在尝试做的事情的一个简单示例:
$test = @('one','two','three')
$filter = '$_ -eq "one"'
$test | Where-Object -FilterScript { $filter }
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用;我拿回了所有元素。我也尝试过:
$filter = { $_ -eq "one" }
$filter = [scriptblock]::Create($_ -eq 'one')
Run Code Online (Sandbox Code Playgroud)
这些都返回:
one
two
three
Run Code Online (Sandbox Code Playgroud)
但是,用实际过滤器替换变量可以按预期工作:
$test | Where-Object -FilterScript { $_ -eq "one" }
Run Code Online (Sandbox Code Playgroud)
这仅返回“一”,没有“二”和“三”。有谁知道我怎样才能做到这一点?我最初是在 Core v7.0.3 上尝试的,但也在 Windows PowerShell v5.1 上进行了测试。
如果我在启用代理转发的情况下通过 SSH 访问,是否可以targethost访问我的 SSH 密钥代理?jumphostjumphost
ssh -A -J user1@jumphost user2@targethost
Run Code Online (Sandbox Code Playgroud)
如果我不完全信任,这仍然安全吗jumphost?
我在 nginx 中有一个位置,其中 GET 和 POST 请求应该发送到不同的命名位置。但这段代码不起作用:
if ( $request_method = GET ) {
try_files /NON-EXISTENT @named_location_get
}
if ( $request_method = POST ) {
try_files /NON-EXISTENT @named_location_post
}
Run Code Online (Sandbox Code Playgroud)
因为try_files不准进去if。
还有其他方法可以将请求重定向到指定位置吗if?
来自这篇文章:虚拟化:什么是 KVM?和其他资源,我了解到可以将 Live VM 从一台主机迁移到另一台主机吗?
实时迁移
KVM 支持实时迁移,即在不中断服务的情况下在物理主机之间移动正在运行的 VM 的能力。VM 保持开机状态,网络连接保持活动状态,并且在 VM 重新定位时应用程序继续运行。
有人可以详细说明如何使之成为可能吗?
通常,运行中的 VM 与一些硬件(真实或虚拟)相关,如内存、CPU、磁盘、图形、网络等。它与主机操作系统(在类型 2 管理程序的情况下)或管理程序/KVM(在类型 1 管理程序的情况)。在新主机上,VM 必须将自身与上述资源/驱动程序等重新绑定 - 这可能表明停机时间(可能很短)。
那么如何实现零服务中断的实时迁移。
感谢您提前回复。
virtualization hyper-v hypervisor live-migration kvm-virtualization
我在 CentOS 8.2 安装上再次启用了 SELINUX。现在无论是通过 ssh 还是直接登录都无法登录。要登录,我必须将模式设置为宽松。安全日志如下所示。
#login with ssh
Sep 14 02:26:57 lcl sshd[4407]: Accepted password for <MY USERNAME> from <My local ip> port 52410 ssh2
Sep 14 02:26:57 lcl systemd[4412]: pam_unix(systemd-user:session): session opened for user <MY USERNAME> by (uid=0)
Sep 14 02:26:57 lcl sshd[4407]: pam_systemd(sshd:session): Failed to create session: Start job for unit user@1000.service failed with 'failed'
Sep 14 02:26:57 lcl sshd[4407]: pam_unix(sshd:session): session opened for user <MY USERNAME> by (uid=0)
Sep 14 02:26:57 lcl sshd[4421]: fatal: sshd_selinux_copy_context: …Run Code Online (Sandbox Code Playgroud) 我在 AWS-EC2 中以 t3a.medium 实例类型托管了一个电子商务网站。现在流量正在增加,CPU 使用率非常高,站点一次又一次地停止工作。查看 htop,mysql 正在使用最大 CPU。
在当前实例中,vcpu 只有 2,所以我想更改实例类型。但问题是我怎么知道哪个最适合我的系统?
linux ×2
ssh ×2
amazon-ec2 ×1
centos8 ×1
hyper-v ×1
hypervisor ×1
login ×1
memory ×1
memory-usage ×1
nfs4 ×1
nginx ×1
powershell ×1
proxmox ×1
qemu ×1
selinux ×1
ssh-agent ×1
ubuntu-20.04 ×1