标签: filesystems

mysql 的多个文件系统

mysql 是否支持单个数据库的多个文件系统,并且大多数表都位于 MyISAM 上?

背景:我们有一个 1.5TB 的 mysql 数据库,该数据库以每月 200GB 的速度增长。存储是直接连接的,其插槽几乎已满。我可以添加另一个 DAS,并增加文件系统。但是调整卷大小、调整文件系统大小等变得很混乱。MySql 世界中是否有“表空间、数据文件”的概念(就像在 oracle 中一样)?

或者你们如何在这些限制下管理 mysql 数据库?

mysql storage filesystems

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

双向文件系统透明解决方案

我需要实现某种 HA 设置,其中两台服务器需要能够始终保持同步,无论您在哪一台服务器上写入。数据库部分可以通过主主复制设置来覆盖。然而,当涉及到文件和内容时,我一直无法找到能够很好地满足这些需求的东西。例如,我需要能够将 /var/www 从一台机器复制到另一台机器,并且能够在其中任何一台机器中进行写入,并且无论 http 请求发送到何处,始终具有相同的可用内容。

  • unison:易于使用,概念简单,但它更像是 2 路 rsync,不会自动传播文件更改,除非您使用重复选项运行它。我不确定这有多可靠。我希望有一个类似守护进程的功能,可以“监视”文件夹内容的更改。
  • glusterfs:易于配置,一个不错的项目,似乎非常适合我的需要,但是,它似乎无法处理这种2路。
  • xtreemfs:如果您想要复制,则很难配置(文档有点难以理解),并且似乎更多地用于“分布式文件系统”部分而不是复制方面。
  • ceph:与 gluster 类似,但同样,不要认为它处理 2 路复制。
  • mogilefs:不透明,您构建的应用程序需要了解它并使用它的服务来访问文件系统。不是我能用的东西。

所以我不确定双向复制是否是通常不做的事情,我需要重新考虑这一点,或者我还没有对此进行足够的研究,但我不知所措。我似乎没有找到其他解决方案。

还有其他东西可以处理自动透明的双向文件复制吗?

filesystems replication high-availability glusterfs unison

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

如何创建 btrfs RAID-1 文件系统(mkfs.btrfs 中的断言错误)?

我尝试按照 btrfs UseCases 说明以“降级模式”创建 btrfs RAID-1 文件系统,但遇到了致命断言错误。为什么会失败,有什么解决方法吗?

我遵循的说明位于:

https://btrfs.wiki.kernel.org/index.php/UseCases#How_can_I_create_a_RAID-1_filesystem_in_.22degraded_mode.22.3F

mkfs.btrfs和命令的输出btrfs filesystem show是:

# mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

failed to read /dev/sr0
adding device /dev/loop1 id 2
mkfs.btrfs: volumes.c:802: btrfs_alloc_chunk: Assertion `!(ret)' failed.
zsh: abort (core dumped)  mkfs.btrfs -m raid1 -d raid1 /dev/sdd1 /dev/loop1
# btrfs filesystem show
failed to read /dev/sr0
Label: none  uuid: 773908b8-acca-4c30-85c5-6642b06de22b
        Total devices 1 FS bytes used …
Run Code Online (Sandbox Code Playgroud)

filesystems mkfs btrfs

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

Linux:在磁盘空间不足的情况下触发实时警报

我想订阅一个 inotify 风格的守护进程,以便在给定文件系统上的可用空间低于一定百分比时收到通知。这可能吗?

linux filesystems

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

是什么让 Lustre 比 NFS 更快且更具可扩展性?

我在不同的地方(例如,这里这里)读到,NFS 的 I/O 性能无法扩展,而 Lustre 可以扩展,而且 Lustre 一般可以提供更好的 I/O 速率。

两者之间似乎存在各种架构差异,但我无法确定到底是什么让 Lustre 在速度或可扩展性方面有所提升。我想我的问题有些概念性,但是与 NFS 或允许 Lustre 扩展并提供更快 I/O 速率的功能相比,关键区别是什么?

cluster filesystems nfs hpc lustre

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

如何组织数百万个静态文件以通过网络高效地提供服务?

我想创建一个服务来提供数十万个较小的文件(从 5kb 到 500kb,大部分在 10-100kb 左右)。将其视为一种 gr​​avatar.com,它在https://secure.gravatar.com/avatar/1545f91437e2576b910dbd1023a44756等 URL 上提供这些小头像图片

我想使用没有任何 ID 或哈希值的描述性 URL,例如http://www.server.com/This-is-my-file.ext,没有重复的文件名。

在没有太多开销的情况下提供和组织文件的最有效方法是什么?

只要将所有内容放在一个目录中并让 nginx 提供文件,在达到一定数量的文件后,速度会变慢,具体取决于文件系统。

一个想法是根据文件名的第一个字符将文件保存在一个简单的目录结构中,因此该示例将从 T/h/This-is-my-file.ext 中提供,并在 nginx 配置中使用简单的重写规则。这将导致不同目录的分布非常不均匀。假设使用文件名的 md5 哈希值会产生良好的分布,但需要更多的计算能力...

我想这听起来像是键值存储的完美用例,但是仅仅使用文件系统和 nginx 来保持简单是不是可能?

rewrite filesystems nginx hash

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

在 zfsonlinux 中增长 zpool

我有 2x3TB 的 GPT 磁盘和 zpool,在第一个磁盘 (sda4) 上使用 2.7TB 分区,在第二个磁盘 (sdb4) 上使用 1TB。

\n\n

原因是最初两个磁盘都只有 1TB,我随后将它们都替换为 3TB。但在我拥有 1x1TB 和 1x3TB 期间,我将剩余的 3TB 用于另一个分区,现在我想删除该分区。

\n\n

我在 Linux 上使用最新的 ZFS (0.6.5.7-8-wheezy)。将池大小调整为完整 2.7TB 的正确方法是什么?

\n\n

autoresize目前已关闭。lsblk这是和的当前输出zpool status

\n\n
# lsblk\nNAME    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT\nsda       8:0    0   2,7T  0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1    8:1    0     1M  0 part\n\xe2\x94\x9c\xe2\x94\x80sda2    8:2    0  14,5G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md0   9:0    0  14,5G  0 raid1 /\n\xe2\x94\x9c\xe2\x94\x80sda3    8:3    0   4,2G  0 part\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80md2   9:2    0   4,2G  0 …
Run Code Online (Sandbox Code Playgroud)

linux zfs filesystems zfsonlinux

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

文件系统提交间隔选项如何与 vm.dirty_expire_centisecs 交互?

问题

文件系统“提交间隔”选项如何交互vm.dirty_expire_centisecs?当其中一个比另一个短时会发生什么?以不同的方式设置这些是否有意义?

我的理解是,文件系统提交间隔设置控制文件系统主动将脏数据和元数据写入磁盘的频率,即使fsync应用程序尚未调用也是如此。

单独来看,vm.dirty_expire_centisecs似乎有类似的作用,但在 VM 层而不是文件系统层。


参考

ext4commit挂载选项

Ext4 可以被告知每隔“nrsec”秒同步其所有数据和元数据。默认值为 5 秒。这意味着,如果您断电,您将丢失最近 5 秒的工作(不过,由于日志功能,您的文件系统不会被损坏)。

btrfscommit挂载选项

设置定期提交的时间间隔。较高的值会推迟将数据同步到永久存储,从而在系统崩溃时产生明显的后果。

请注意,我暂时忽略 XFS,因为它的fs.xfs.xfssyncd_centisecs选项似乎仅适用于元数据。

vm.dirty_expire_centisecs:

此可调参数用于定义脏数据何时足够旧,可以由内核刷新器线程写出。它以百分之一秒表示。内存中脏数据的时间超过此时间间隔的数据将在下次刷新器线程唤醒时被写出。

linux filesystems

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

仅针对尝试部署的开发人员锁定的文件

我们的开发人员使用 VisualStudio 2017

他们使用我编写的 Post-Build PowerShell 函数将应用程序发布到正确的目的地。

有时(100 次中有 1 次)他们会收到以下错误:

Copy-Item : The process cannot access the file 'X:\xy\application.exe' because it is 
9>  being used by another process.
Run Code Online (Sandbox Code Playgroud)

问题是 - 它没有被另一个进程使用。任何其他用户(例如我)可以重命名目标中的文件,删除它或其他任何。

当开发人员重新启动他的计算机时,他可以毫无问题地发布应用程序。

所以在我看来,他的文件系统搞砸了一些事情。我们尝试了

taskkill /im explorer.exe /f && start "" explorer.exe 但这没有帮助。

如果开发人员使用他的资源管理器查看目标,即使我删除了目标文件,开发人员也会看到目标文件。

怎么会这样?我们如何解决这个问题?

PowerShell 函数本身非常轻量级。它基本上是为了部署:

Write-Host "Starting Copying files to $d"
$Copy = Copy-Item $FilesToPublish $d -Force -Recurse
Write-Host "Finished Copying files to $d"
Run Code Online (Sandbox Code Playgroud)

如果指定(并且已指定),该函数还将删除目标的所有锁

Get-SmbOpenFile -CimSession $Session | ? { $_.Path -like "$EndPath*" } | Close-SmbOpenFile -Force …
Run Code Online (Sandbox Code Playgroud)

windows powershell filesystems deployment

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

估计 resize2fs 收缩所需的时间

我有一个很大的 ext4 文件系统,我目前正在缩小它(在我的情况下为 109Tb -> 83Tb),并且需要很长时间(询问时的第 5 天)。目前我可以通过iotop. 然而,从互联网上粗略一瞥,似乎 resize2fs 并没有像增加卷(大约 2011 年)那样针对收缩进行优化。

就此而言,如果我能帮上忙,我不想打断它,但我觉得这么长时间运行文件系统更改有点赤裸裸。考虑到我们知道前后的空间需求(以及块数/块大小),ext4 收缩的正确/及时估计是什么?

涉及软件

  • e2fs...:1.43.1
  • 操作系统: debian 4.19.16-1-bpo9+1

我的特定文件系统

  • 类型:ext4
  • 大小:~109Tb(29297465344 个块)
  • 缩小到:83Tb(22280142848 块)
  • 块大小:4Kb(4096 字节)
  • 每个 inode 的字节数:2^15(32786 字节)

当前输出

resize2fs -p ...

[root@devlynx]## ~:: resize2fs -p /dev/storage/storage 83T
resize2fs 1.43.4 (31-Jan-2017)
Resizing the filesystem on /dev/storage/storage to 22280142848 (4k) blocks.
Begin pass 2 (max = 802451420)
Relocating blocks             XX--------------------------------------
Run Code Online (Sandbox Code Playgroud)

iotop

   TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN …
Run Code Online (Sandbox Code Playgroud)

linux filesystems ext4 debian lvm

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