问题列表 - 第4975页

通过另一个容器路由 Docker 容器流量

我正在尝试通过容器 A(10.10.1.3,haproxy,以透明代理模式设置)将容器 B(10.10.1.2,使用 mysql 的自定义二进制文件并在端口 4242 上运行)的 tcp 流量路由到外部世界,它们共享10.10.1.0/24桥接模式下的相同用户定义的 docker 网络

容器 B 不暴露端口,只暴露容器 A。

在容器 B 上:

# ip route show
default via 10.10.1.1 dev eth0
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.2
# ip route replace default via 10.10.1.3
# ip route show
default via 10.10.1.3 dev eth0
10.10.1.0/24 dev eth0 proto kernel scope link src 10.10.1.2
Run Code Online (Sandbox Code Playgroud)

在容器 A(haproxy)上:

sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_nonlocal_bind=1
iptables -t mangle -N DIVERT
iptables -t mangle -A …
Run Code Online (Sandbox Code Playgroud)

routing haproxy docker

5
推荐指数
1
解决办法
2943
查看次数

不转换 iSCSI 磁盘的 vSphere P2V 转换

我有一台物理 Windows 2008 R2 服务器,它通过 iSCSI、以太网连接到 SAN。我需要将服务器转换为虚拟的,但我希望将iSCSI卷到VMDK转换,因为我没有所需的存储空间。

相反,我希望保持 iSCSI 连接不变,让新 VM 继续使用 SAN。我的 vSphere 主机上的虚拟机没有存储在 SAN 上(它们在本地存储上),所有东西都在同一个 LAN 上。

我可以这样做吗?使用 vSphere P2V Converter 时,是否只需取消选中该框即可转换 iSCSI 卷?iSCSI 连接是否会转移到 VM 并继续工作?

iscsi physical-to-virtual vmware-vsphere

7
推荐指数
1
解决办法
216
查看次数

在非常大的文件系统和高 IOWAIT 上进行性能改进的选项

我有一个带有 8x10TB HDD 的 Ubuntu 16.04 备份服务器,通过 SATA 3.0 背板。8 个硬盘组装成 RAID6,正在使用 EXT4 文件系统。该文件系统存储了大量具有大量 SEEK 操作但 IO 吞吐量较低的小文件。事实上,每天都有许多来自不同服务器的小文件通过 rsnapshot 获取快照(多个 INODES 直接指向同一个文件。由于文件系统(60TB 网络)超过 50% 的使用率,我的性能非常差。目前,使用率为 75% 并且

du -sch /backup-root/
Run Code Online (Sandbox Code Playgroud)

需要几天(!)。机器有8核和16G内存。RAM 完全由 OS 文件系统缓存使用,由于 IOWAIT,8 个内核中的 7 个内核始终处于空闲状态。

Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          5af205b0-d622-41dd-990e-b4d660c12bd9
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options: …
Run Code Online (Sandbox Code Playgroud)

ext4 performance-tuning ubuntu-16.04

10
推荐指数
3
解决办法
2183
查看次数

每次重新启动 Apache 时,“未注册的 unix-process 身份验证代理”?

我的服务器是带有 Apache 2.4.6 的 centos 7.4。
每次 I 时systemctl restart httpd,2 条消息都会添加到/var/log/secure.Looks 中:

Jan 19 8:23:48 localhost polkitd[493]: Registered Authentication Agent for unix-process:5739:174943 (system bus name :1.119 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8)
Jan 19 8:23:49 localhost polkitd[493]: Unregistered Authentication Agent for unix-process:5739:174943 (system bus name :1.119, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8) (disconnected from bus)
Run Code Online (Sandbox Code Playgroud)

有什么问题?

apache-2.4 centos7

5
推荐指数
1
解决办法
7万
查看次数

平均负载高但 CPU 使用率和磁盘 I/O 低

我在我的一台服务器上遇到了一个奇怪的问题。这是在具有一个专用 CPU 内核的 KVM VPS 上。

有时负载会飙升至 2.0 左右: 负载图

但是,在此期间 CPU 使用率实际上并没有增加,这也排除了 iowait 是原因: CPU使用率图

它发生时似乎是周期性的(例如,在此图中,它大约每 20-25 分钟发生一次)。我怀疑有一个 cronjob,但我没有任何每 20 分钟运行一次的 cronjob。我也试过禁用我的 cronjobs 并且负载峰值仍然发生。

当 SSH 进入服务器时,我设法实际看到了这种情况……它的负载为 1.88,但 CPU 空闲率为 94%,iowait 为 0%(这可能是我预期的原因)

<code>top</code> 输出 <code>htop</code> 输出

发生这种情况时,似乎没有很多磁盘 I/O。

我难住了。有任何想法吗?

linux load-average

7
推荐指数
1
解决办法
7815
查看次数

NFS 导出 ext4 和 btrfs 的叠加

我有 2 个数据源。一种是 btrfs(raid),一种是简单的 ext4 分区。那些应该透明地显示为一个。这是一个简单的只读示例,但是lower/upper/workdir 版本产生了同样的问题,btrfs 为upper,ext4 为lower。

手动安装:

mount -t overlay overlay -o lowerdir=/mnt/raid/folder1/:/mnt/ext4/folder1 -o comment=merge  -o nfs_export=on /data/merged
Run Code Online (Sandbox Code Playgroud)

fstab 挂载:

overlay /data/merged overlay defaults,lowerdir=/mnt/raid/folder1/:/mnt/ext4/folder1,comment=merge,nfs_export=on 0 0
Run Code Online (Sandbox Code Playgroud)

这是我的 nfs 导出:

/data/merged 192.168.0.0/255.255.255.0(ro,fsid=1,async,insecure,crossmnt)
Run Code Online (Sandbox Code Playgroud)

exportfs -ra 产生: exportfs: /data/merged does not support NFS export

我的配置:Ubuntu 18.04 LTS with HWE kernel 4.18.0-13-generic 这是我的主要配置来源:https ://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

也许我错过了一些 NFSv4 的东西(这是 nfs 导出overlayfs 所需要的)?

编辑:根据要求,我为 sourcecs 安装:

UUID=d138b8fa-83e1-4df7-80dc-c1ed7d866f77       /mnt/raid       btrfs   defaults        0       2
UUID=6bb8f391-0872-40cf-8aff-8bdb32632098       /mnt/ext4        ext4    errors=remount-ro 0 2
Run Code Online (Sandbox Code Playgroud)

编辑2:

grep -H . /sys/module/overlay/parameters/* …
Run Code Online (Sandbox Code Playgroud)

nfs btrfs overlayfs

2
推荐指数
1
解决办法
2858
查看次数

传递来自 auth_request 的标头

我有一个授权模块,每当向私有端点发出请求时都会调用该模块。

该模块从Authorization标头中解析令牌,并且:

  1. 如果无效,则返回 401
  2. 如果有效,则返回 200
  3. 如果它有效但即将在 X 分钟后到期,它会生成一个新令牌并在Authorization标头中返回该令牌。

“profile”是私有端点之一,它的配置方式如下:

location /profile {
  auth_request /jwtverify;

  auth_request_set  $authorization $upstream_http_authorization;
  proxy_set_header  authorization $authorization;
  proxy_pass        http://private-profile:80;
}
Run Code Online (Sandbox Code Playgroud)

jwtverify 是这样配置的:

location = /jwtverify {
  internal;
  proxy_pass              http://auth-module:8080/auth/verify;
  proxy_pass_request_body off;
  proxy_set_header        Content-Length "";
  proxy_set_header        X-Original-URI $request_uri;
  auth_request_set        $http_authorization $upstream_http_authorization;
}
Run Code Online (Sandbox Code Playgroud)

现在,除了要求号外,一切正常。3:如果auth模块设置了Authorizationheader,客户端永远不会收到它。

流程应该是这样的:

  • 客户端发出请求
  • auth-module 拦截请求,如果有效,代理将其传递给私有服务
  • 发送响应时,auth-module应保留由 设置的标头并发送给客户端

我想我没有正确理解如何组合auth_request_set, proxy_set_header, auth_request_set,也可能是它们不适合这种情况。

有没有办法在 NGINX 中实现这一点?

nginx

7
推荐指数
2
解决办法
7695
查看次数

openssl 在 1 深度查找时验证错误 2:无法获取颁发者证书

Openssl 告诉我它无法验证我的串联证书。我从颁发者(AlphaSSL)下载了中间证书,并将其与我购买的域证书(首先是域证书,然后是 AlphaSSL 中间证书)按照 Google 应用引擎的指示连接起来。然后我按照他们的指示进行验证:

openssl verify -verbose -CAfile mycert_cat.crt mycert_cat.crt
Run Code Online (Sandbox Code Playgroud)

我尝试使用上述内容进行验证并收到此错误消息:

mycert_cat.crt: /C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
error 2 at 1 depth lookup:unable to get issuer certificate
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了它,但结果说我忘记将证书附加到文件中。我没有。

还有什么可能导致此问题?

ssl openssl ssl-certificate

7
推荐指数
1
解决办法
1万
查看次数

如何在 ubuntu docker 镜像上安装 tzdata?

我在 Dockerfile 中有以下行。

RUN apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会询问我的输入。在我提供输入后,它挂在那里。有谁知道如何解决这个问题?

Step 25/25 : RUN apt-get install -y tzdata
 ---> Running in ee47a1beff84
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  tzdata
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 189 kB of archives.
After this operation, 3104 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 tzdata all 2018i-0ubuntu0.18.04 [189 kB]
debconf: unable …
Run Code Online (Sandbox Code Playgroud)

timezone docker

107
推荐指数
5
解决办法
9万
查看次数

检查驱动器类型的快速方法

有没有一种快速的方法来理解 Linux 上的“存储”类型?它是 HDD 还是 SSD(或 NVMe)?众所周知,主机是物理机而不是虚拟机。我首先想到的是目录rotational下的标志/sys/block/<device>/queue/。但根据我的经验,即使对于 SSD 设备,它也可能包含“1”值。第二种更现实和真实的方式是延迟。测量起来有点困难(有些使用 /proc/diskstats),但看起来更可取。

还有其他方法吗?值得一提的是,我不需要知道“存储”的确切模型,只需要知道它的类型。

linux storage proc

11
推荐指数
1
解决办法
1099
查看次数