AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-333167

user121391's questions

Martin Hope
user121391
Asked: 2016-09-03 01:29:56 +0800 CST

VMware ESXi:VM 的暂停过程(允许 NFS 存储重新启动),对数据库、AD、特殊情况有任何副作用吗?

  • 3

情况:

在集成的一体化 ESXi/ZFS-Storage 服务器上,存储 VM 使用裸机磁盘并通过 NFS(或 iSCSI)将文件系统导出回 ESXi,ESXi 将其用作其他 VM 的池存储,存在更新存储虚拟机时会出现问题,因为许多正在运行的虚拟机都依赖于它,并且会因或类似原因而超时NFS.AllPathsDown,这相当于从普通服务器中拉出驱动器而不将其关闭。

当然可以关闭所有虚拟机,但这会变得非常耗时且乏味(或者必须编写脚本)。将虚拟机移动到另一台主机是可能的,但需要更长的时间,并且在较小的设置中可能是不可能的,因为单台机器就足够了。暂停虚拟机可能会起作用,但速度也很慢(有时比关机慢)。

可能的解决方案...

  1. 一个简单而有效的解决方案似乎是通过 CLI 停止 VM 进程,在使用kill -STOP [pid]找到它之后ps -c | grep -v grep | grep [vmname],执行存储 VM 的升级/重新启动,然后使用 继续执行 VM 进程kill -CONT [pid]。
  2. 类似的解决方案可能是快速重启(在 Solaris/illumos viareboot -f或 Linux via 上可用kexec-reboot)的组合,这需要几秒钟而不是几分钟,以及 ESXi 中的 NFS 超时(在失去 NFS 连接时,我认为所有 I/O 都会暂停120 秒,直到假定存储永久关闭)。如果重新引导时间在 ESXi NFS 窗口内,理论上它应该类似于由于错误更正而一分钟没有响应但随后恢复正常操作的磁盘。

……还有问题?

现在,我的问题是:

  1. 哪种方法更可取,或者它们同样好/坏?
  2. 在数据库、Active Directory 控制器、用户运行作业的机器等特殊情况下会有哪些意外副作用?
  3. 哪里应该小心?链接博客上的评论提到,例如,当 CPU 冻结时,可能会出现计时问题。

编辑:澄清这个问题的范围

在收到前两个答案后,我认为我的问题措辞不够清楚,或者为了简洁而遗漏了太多信息。我知道以下几点:

  • VMware 或其他任何人都不支持它,不要这样做!:我没有提到这一点,因为第一个链接已经告诉了它,而且我也不会问这台机器是否由 VMware 支持管理。这是一个纯粹的技术问题,支持的东西超出了这里的范围。
  • 如果今天设计一个新系统,有些事情可以通过其他方式来完成: 正确,但是由于系统已经运行了几年稳定,我宁愿不把婴儿和洗澡水一起扔掉,重新开始,引入新的问题。
  • 购买硬件X,你不会有这个问题!诚然,我可以以相似的成本购买 2 或 3 台额外的服务器并拥有完整的 HA 设置。我知道这是怎么做到的,这并不难。但这不是这里的情况。如果这对我来说是一个可行的解决方案,那么我一开始就不会问这个问题。
  • 只需接受关闭和重启的延迟:我知道这是一种可能性,因为这是我目前正在做的事情。我问这个问题是为了在当前设置中找到更好的替代方案,或者了解已证实的技术原因,其中概述的一些方法会出现问题 - “它是不可预测的”,没有任何解释为什么在我的书中没有得到证实的答案。

因此,重新表述问题:

  1. 这两种方法中的哪一种在技术上更可取?为什么,假设设置是固定的并且目标是减少停机时间而不会给数据完整性带来任何负面影响?
  2. 在特殊情况下有什么意外的副作用,例如
    • 用户和/或应用程序访问它们的活动/空闲/静止数据库
    • 这台机器上和/或其他机器上的 Active Directory 控制器(在同一个域上)
    • 通用机器空闲或用户运行作业或运行自动维护作业(如备份)
    • 网络监控或路由器等设备
    • 在此服务器或另一台或多台服务器上使用或不使用 NTP 的网络时间
  3. 在哪些特殊情况下最好不要这样做,因为缺点大于优点?哪里应该小心?链接博客上的评论提到,例如,当 CPU 冻结时可能会出现计时问题,但没有提供任何推理、证明或测试结果。
  4. 这两种解决方案之间的实际技术差异是什么?
    1. 由于主机上的 CPU 过载,VM 进程的执行停止
    2. 由于磁盘或控制器故障而增加了磁盘 I/O 的等待时间,假设它低于 NFS 阈值?
nfs active-directory database zfs vmware-esxi
  • 3 个回答
  • 1390 Views
Martin Hope
user121391
Asked: 2016-08-27 03:37:42 +0800 CST

OmniOS/ZFS/Windows 7:对于 CIFS/SMB 上的所有文件大小,应用程序内的“另存为”延迟 5 秒

  • 9

情况:

以下奇怪的问题发生在运行 OmniOS r151018 (95eaa7e) 的单个文件服务器上,通过 SMB 向 Windows 和 OS X 来宾提供文件。

通过 SMB 共享上的“另存为...”对话框窗口保存某些文件(.docx、.xlsx、一些图像)会导致大约 3 到 5 秒的延迟,此时应用程序根本没有响应,之后文件正常保存。

问题确实发生在“一夜之间”,没有对服务器做任何事情,但很难确定确切的日期,因为用户投诉只是在第一次发生后的一段时间内出现。重新启动服务器后,镜像根池的一个 vdev 不可用,但仔细检查没有发现该设备有任何故障,并重新挂接到该池。问题仍然存在。

一些观察:

  • 它发生在所有 Windows 7 客户端上
  • 它发生在所有文件大小
  • 它发生在这台机器的所有共享上,无论权限如何
  • 它发生在主机上通过 iSCSI 从另一台服务器导入的更快存储
  • GBit 以太网上的正常复制速度为 110 MB/秒
  • 数据和根池似乎没问题
  • 它不会发生在其他文件服务器上
  • 文件保存在本地,然后通过资源管理器复制时不会发生
  • 它不会在 OS X 上发生(只能用 OpenOffice 测试)
  • dmesg显示了几个NOTICE: bge0: interrupt: flags 0x0 - not updated?具有不同值的计数,但这也是以前的情况并且没有害处

进一步的想法/计划:

由于找不到明确的错误消息,我可能需要进行一些试验和错误来寻找原因。我会考虑一些事情(结果以斜体显示):

  • 用 Intel 卡替换 Broadcom 网卡=> 没有区别
  • 用 SATA SSD 替换根池(目前 SLC 内存 USB 记忆棒可以正常工作超过 3 年)=> 没有任何区别
  • 检查中间的网络(硬件,通过直接连接到服务器)
  • 使用 WireShark 捕获流量:如果您不知道自己在寻找什么,这很困难
  • 恢复到以前的 OmniOS 引导环境/版本以排除软件冲突=> 没有影响
  • 回滚 Windows/Office 更新以排除错误
  • 从快照中删除文件名中带有:(冒号)的文件,txgsync 在由 ewwhite => 创建的 reddit 线程上的建议没有产生任何影响

    当使用包含“:”字符的自动快照启用 Windows“以前的版本”功能时,我看到了类似的情况。这只是随风而行,但可能值得一看,因为 Windows 文件名中不允许使用“:”字符。

  • 文件访问监控:根据 shodanshok 的建议,我使用DTrace了这个脚本来监控文件访问。我在保存已经打开的文件时使用它,删除了不相关的输出和个人信息,结果围绕三个文件:

    CPU ID       FUNCTION:NAME
    1   18753    fop_open:entry Open: Workbook
    0   18181 fop_create:return Create: temp_1
    0   18753    fop_open:entry Open: temp_1
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_1
    0   18888  fop_rename:entry Rename: Workbook -> temp_2
    0   18888  fop_rename:entry Rename: temp_1 -> Workbook
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: temp_2
    0   18892  fop_remove:entry Remove: temp_2
    0   18753    fop_open:entry Open: Workbook
    0   18753    fop_open:entry Open: Workbook
    

    在没有出现问题的另一台服务器上执行相同的过程会产生类似的结果:

    CPU ID       FUNCTION:NAME
    1   25182 fop_create:return Create: temp_1
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_1
    1   25889  fop_rename:entry Rename: Workbook -> temp_2
    1   25889  fop_rename:entry Rename: temp_1 -> Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: temp_2
    1   25893  fop_remove:entry Remove: temp_2
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    1   25750    fop_open:entry Open: Workbook
    

    我还在脚本中添加了时间戳 ( walltimestamp),但在这两种情况下,所有文件操作都在同一秒发生。=> 没有区别

  • 在另一台主机上导入磁盘以检查池碎片或磁盘是否有故障=> 没有影响
  • 将数据和根池移到同一台机器上以排除布线、主板等=> 问题确实存在,因此必须是根池(软件)或与软件不兼容的特定硬件(或突然变得不兼容。 ..)

您能否提出其他导致这种行为的原因?或者你有过类似的经历吗?因为我在网上找不到任何有用的东西,我怀疑这要么是一个奇怪的硬件问题(因为它仅限于一台机器),要么是 Windows/Office 的问题。

zfs server-message-block file-server omnios microsoft-office-2010
  • 1 个回答
  • 869 Views
Martin Hope
user121391
Asked: 2016-04-28 05:17:00 +0800 CST

NAS 上的 ZFS 快照(通过 Windows 以前的版本访问)在重命名文件方面是否可以更加灵活?

  • 1

我有一个在 OpenSolaris/illumos/OmniOS 上运行的 NAS,它有几个共享的 ZFS 文件系统,其中自动快照处于活动状态以保存历史记录(保留 4 个 15 分钟快照、24 小时快照、7 个每日快照等)。我可以使用 Windows 资源管理器以前的版本窗口访问快照并恢复旧版本的文件或已删除的文件,这工作正常。

重命名或移动文件时出现的问题:

  • 如果我Draft1.txt在一天内创建和修改它,历史就会被保留。当我完成草稿并将其重命名为其他任何内容时,例如Letter.txt,甚至Draft2.txt,版本就会消失(只有在知道旧文件名或将文件重命名为旧名称时才能通过目录访问它们)。
  • 如果我创建和修改Draft1.txt并稍后保存完成版本的另一个副本Letter.txt(现在有两个文件),第一个有历史记录,第二个没有(这没关系)。如果我删除Draft1.txt然后想恢复它,我可以在目录中找到它,但恢复的版本现在已经失去了它的历史。
  • 如果我将文件移动到另一个子目录,历史记录就会丢失。
  • 如果我(不小心)重命名文件,历史记录就会丢失。

因此,如果我想保留以前版本的全部功能,在使用共享时我必须考虑几件事:

  1. 永远不要重命名文件,第一个选择的名称必须永远存在
  2. 切勿移动或重新组织文件,除非在第一天(否则丢失的更改会太大)
  3. 更改完成后,切勿使用新名称保存文件(但先保存即可)
  4. 永远不要合并或拆分目录,因为所有内容都会丢失所有历史记录,即使物理块根本没有改变

除了忍受它,我能做些什么吗?ZFS 在大多数事情(写时复制、发送/接收、zvols、快照)上都对块起作用,但在这种情况下对文件起作用,这似乎很奇怪。或者这是 SMB/CIFS 子系统而不是文件系统的限制?

solaris file-sharing snapshot zfs server-message-block
  • 1 个回答
  • 856 Views
Martin Hope
user121391
Asked: 2016-04-20 01:55:33 +0800 CST

OmniOS r151018 文件服务器在 samba4 Active Directory 中可见,但在 Windows 网上邻居中不可见

  • 2

我有一个测试设置,其中包含:

  • 3 个 AD 域控制器(设置为在它们之间复制),均在 Univention Corporate Server 4.1 上运行 Samba 4.3
  • 1 个 Windows 7 SP1 客户端加入域
  • 1 台运行 napp-it 16.02f 的 OmniOS r151018 文件服务器加入域,并为某些域测试用户设置了 SMB/CIFS 共享

域按我的预期工作,Windows 登录工作,文件服务器访问工作,DNS 以及直接 IP 连接工作,甚至在关闭一个 DC 时故障转移工作。

唯一不起作用的是我在 Windows 7 机器上的网络浏览器/网络邻居中看不到 OmniOS 机器。搜索所有计算机时,我可以在“搜索 Active Directory”中找到它,也可以使用\\hostname(或 IP)连接到它而不会出现问题或延迟。它似乎并没有正确地宣传自己。其他 3 台服务器和 Windows 机器本身正如人们所期望的那样,只有在机器关闭时才会消失。

在搜索解决方案时,我发现了设置属性的建议,但它似乎没有做任何事情,即使在重新启动后也是如此。smbsystem_comment

另外,我还注意到,与 r151012 相比,随着 OmniOS r151016 和 r151018 的更新,通常在工作组模式下的直接发现不再起作用(只能通过 IP 访问)。这可能与我的问题有关,也可能与我的问题无关,除了合并到这些 OmniOS 版本中的 illumos 版本的“SMB 支持中的多项更改”之外,我找不到任何更详细的信息。

这个问题/不便的原因可能是什么,我该如何解决?作为一种解决方法,网络驱动器的直接映射会起作用,但如果共享数量增加,这可能会出现问题。

solaris active-directory samba netbios omnios
  • 1 个回答
  • 2261 Views
Martin Hope
user121391
Asked: 2016-03-22 06:23:39 +0800 CST

Windows 用户可以覆盖 CIFS/SMB 共享上文件的 NFSv4/Solaris ACL 权限(授予自己完全访问权限),我该如何防止这种情况?

  • 4

我在具有 Solaris 内核模块的 OmniOS 服务器上设置了 SMB/CIFS 文件共享,该内核模块使用 NFSv4 ACL,应该可以与 Windows 客户端正常工作。

我想创建一个具有以下目标的共享目录:用户(假设alice)应该能够创建和修改文件,但不能删除它们。还应防止创建子目录。应该允许读访问。

我尝试了以下 ACL,它基本上可以工作:

/usr/bin/chmod A=\
user:root:rwxpdDaARWcCos:fd-----:allow,\    # root has full access
user:alice:rwx---a-R-c--s:-------:allow,\   # dir: create files, read everything
user:alice:rwxp--aARWc--s:f-i----:allow \   # files: wpAW is needed for full file write access, everything is only inherited to files
/pool/share

但是,如果在 Windows 资源管理器中查看新添加文件alice的安全选项卡,她可以授予自己完全访问权限并在之后删除该文件,即使她没有Co权限。

如何解释这种行为?以及如何更改它以使 ACL 不能被修改?


编辑: 的输出ls似乎是正常的:

# /usr/bin/ls -v
total 1
-rwx------+  1 alice staff          3 2016-03-21 test.txt
    0:user:root:read_data/write_data/append_data/read_xattr/write_xattr
        /execute/delete_child/read_attributes/write_attributes/delete
        /read_acl/write_acl/write_owner/synchronize:inherited:allow
    1:user:alice:read_data/write_data/append_data/read_xattr
        /write_xattr/execute/read_attributes/write_attributes/read_acl
        /synchronize:inherited:allow

# /usr/bin/ls -V
total 1
-rwx------+  1 alice staff          3 2016-03-21 test.txt
    user:root:rwxpdDaARWcCos:------I:allow
    user:alice:rwxp--aARWc--s:------I:allow

ls目录本身的输出:

# /usr/bin/ls -Vd
drwx------+  3 root     root           4 2016-03-21 .
 user:root:rwxpdDaARWcCos:fd-----:allow
user:alice:rwx---a-R-c--s:-------:allow
user:alice:rwxp--aARWc--s:f-i----:allow

# /usr/bin/ls -vd
drwx------+  3 root     root           4 2016-03-21 .
    0:user:root:list_directory/read_data/add_file/write_data
        /add_subdirectory/append_data/read_xattr/write_xattr/execute
        /delete_child/read_attributes/write_attributes/delete/read_acl
        /write_acl/write_owner/synchronize:file_inherit/dir_inherit:allow
    1:user:alice:list_directory/read_data/add_file/write_data
        /read_xattr/execute/read_attributes/read_acl/synchronize:allow
    2:user:alice:list_directory/read_data/add_file/write_data
        /add_subdirectory/append_data/read_xattr/write_xattr/execute
        /read_attributes/write_attributes/read_acl/synchronize
        :file_inherit/inherit_only:allow

共享的文件系统是 ZFS。最有趣的非默认属性如下:

NAME        PROPERTY        VALUE          SOURCE
pool/share  type            filesystem     -
pool/share  compression     lz4            inherited from pool
pool/share  atime           off            local
pool/share  aclmode         restricted     local
pool/share  aclinherit      passthrough    local
pool/share  version         5              -
pool/share  utf8only        on             -
pool/share  normalization   formD          -
pool/share  casesensitivity insensitive    -
pool/share  nbmand          on             local
pool/share  sharesmb        name=testshare local

CIFS 共享权限设置为允许所有人完全访问,因此应仅应用文件权限。

更新:

该线程与我的问题非常相似,尽管在我的情况下减少 ACL 的解决方案/pool/share/.zfs/shares/testshare(modify_set或拒绝用户特定的删除权限)似乎不起作用,我不知道为什么。

windows
  • 2 个回答
  • 1485 Views
Martin Hope
user121391
Asked: 2016-01-22 05:41:15 +0800 CST

如果 cfgadm 状态为断开连接,如何在 Solaris 中自动检测插入的 SATA 磁盘?

  • 5

我的目标是结合 SATA 磁盘在小型 OpenSolaris NAS(在 HP Microserver N54L 上运行 OmniOS + napp-it)上自动执行备份例程。

背景:

我安装了其中一个 5.25" -> 3.5" 无托架 HDD 托盘,其中包含一个简单的 SATA 或 SAS/SATA 背板,带有一个端口、一个电源按钮和一些 LED(电源和 HDD 活动)。zfs send/recv当我手动启动它时,这个脚本工作正常。

我想进一步自动化该过程,因为 NAS 没有直接连接 VGA 或串行控制台,插入磁盘、返回桌面系统、登录 Web 界面或 SSH 并手动启动脚本很繁琐. 通过 cron 作业定时启动不是一个选项,因为备份的天数可能略有不同(忘记磁盘、假期等)。所以备份应该在插入磁盘后立即开始。

问题:

在我cfgadm用来连接 + 配置和稍后取消配置 + 断开磁盘的脚本中。如果我只插入磁盘并且它旋转起来,我无法知道磁盘在那里。我已经考虑过的可能解决方案:

  1. cfgadm -f -c connect通过使用和检查错误结果,每 x 分钟连续探测一个新磁盘和 zpool 。不是很优雅。
  2. 每 x 分钟检查/var/adm/messages一次并查找设备路径或 AHCI。不可能,因为只有在手动连接设备时才会写入消息。
  3. 使用iostat -En. 显示磁盘,但我必须使用 grep 获取确切的序列号,因为它没有列出端口信息。还需要每 x 分钟完成一次。
  4. 使用cfgadmwith SELECT 语法过滤容器状态。不起作用,因为插入不会触发任何事情(也许背板太便宜了)。
  5. 识别机箱的电源开/关。没关系,但我不知道如何做到这一点。
  6. 重新映射电源按钮或向机器添加另一个按钮。可以工作,但我也不知道该怎么做。

我想我需要两件事:

  • 结合识别磁盘和端口状态的可靠方法(因此仅检测到正确插槽中的正确磁盘)
  • 一种注册此检测并触发事件的方法(启动 shell 脚本)

这可能吗?如果没有,您会建议什么替代方案?

最终解决方案(2015-01-26 更新):

对于将来遇到类似问题的任何人:

  1. 在 OmniOS 中启用 AHCI 热插拔,如 gea接受的答案中所述。
  2. 使用我自己的答案syseventadm中的详细说明在磁盘联机时触发备份脚本。
  3. 确保您的电缆、控制器和磁盘没有故障并且可以正常运行(我在使用 WD SE 4TB 磁盘和板载 AHCI SATA 控制器时遇到问题,导致WARNING: ahci0: ahci_port_reset port 5 the device hardware has been initialized and the power-up diagnostics failed系统日志中出现随机消息)。
hard-drive
  • 3 个回答
  • 1660 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve