我开始看到具有数百 TB 数据的客户端(在 SQL Server 安装中)。由于某些企业中的数据总量接近 PB 的有意义的部分,我想浏览那里的集体知识库,以了解处理如此大量数据的人正在采取哪些措施来保护它。
一个明显的问题是存储这么多数据的多个备份非常昂贵,使用企业级存储,见鬼,甚至只是 RAID-5。
我看到的选项如下:
我看到选项 #4 被采用为默认值,作为 HA/DR 专家,这真的很可怕,但我有什么建议作为替代方案?我认为 #1 是最好的方法,但是当建议除 #4 和 #3 之外的任何替代方案时,“我不这么认为”是通常的答案。
现在,当然这取决于数据的变化率和重要性。无需回答这个问题,因为我在 Microsoft 工作期间曾负责 SQL Server 的所有 HA 功能,所以我精通“视情况而定”的论点——这是我的口号:-)
我很想知道我错过的任何替代方案,或者听到其他人都在同一条船上,除了花费大量资金购买更多存储空间之外,没有现实的替代方案。
提前致谢 - 所有经过深思熟虑和明确表达的答案都将得到应有的赞誉。
xen domU 的定期 LVM 快照作为备份策略的可行性如何?优点,缺点,有什么问题吗?
对我来说,这似乎是快速、无脑恢复的完美解决方案。任何调查都可以在 domU 成功运行而没有中断的情况下对损坏的逻辑卷进行。
编辑:
这就是我现在在做完整系统备份时所处的位置。
现在我需要自动化这个。
我正在尝试为某些客户端制定备份策略,并且倾向于远程备份的双重性(已经将 rdiff-backup 用于内部/本地备份)。
每隔一段时间进行一次完整备份是否合理?由于重复性向前递增,因此每个增量备份都依赖于前一个增量,并且都严重依赖于最后一个完整备份。如果它变得腐败,坏事就会发生。一个相关的问题:Duplicity 是否会测试增量备份的一致性?
假设我确实需要经常进行完整备份,duplicity 创建完整备份的效率如何?它可以/是否检查文件签名并从以前的完整备份/增量复制未更改的数据?基本上是创建一个新的“完整”存档来传输新的/更改的数据并合并现有的未更改数据?
现在我担心的是需要运行完整备份,但是完整备份的一致大带宽使用会使某些客户端不合理。
在三周的时间里,我在客户站点经历了六次 LTO-1 和 LTO-2 磁带驱动器完全故障。有些机制失败了。其他人则失去了可靠写入的能力。这些是 HP Ultrium 232、448 和 460 驱动器。大多数这些单位是在 2006 年和 2008 年之间部署的,因此失败的时机是正确的。容量 (400GB) 适合应用程序。我用等效的设备替换了几个驱动器,只是为了保持一致性。一台服务器也有 SCSI HBA 故障,进一步延迟了恢复。那时,客户询问是否有比磁带更好(或更少挑剔)的可用硬盘解决方案。
当我开始寻找替代品时,我发现RDX 可移动磁盘存储技术已被主要服务器制造商(HP、Dell、IBM)采用。从我的角度来看,它看起来像是通过 USB2 内部或外部连接的对接 2.5" SATA 磁盘,容量高达 1TB。由于这些是实际磁盘,因此恢复和寻道时间似乎是合理的。但我有几个问题实践中的技术。
mkfs命令在/dev/sda. 是否有任何设备的重命名/重新排序(从添加SCSI控制器,插入USB密钥等)的机会,或将对接单元在一个特定的设备名称坚持为你更换驱动器?我很好奇,因为这可能是一个有趣的选择。一系列磁带驱动器故障发生之时,在继续前进之前重新评估其他选项是有意义的。
执行 pg_dump 时应该使用哪个,为什么?
pg_dump -U <user> <database> | gzip -c > backup.gz
或者
pg_dump -F c -f backup.tar.gz -U <user> <database>
我需要每天备份此服务器上的数据和配置文件。我需要保持:
所有这些都是通过每天从 cron 运行的 shell 脚本完成的。
这是备份文件在运行 10 年后的样子:
blog-20050103.tar.bz2
blog-20060102.tar.bz2
blog-20070101.tar.bz2
blog-20080107.tar.bz2
blog-20090105.tar.bz2
blog-20100104.tar.bz2
blog-20110103.tar.bz2
blog-20120102.tar.bz2
blog-20130107.tar.bz2
blog-20130902.tar.bz2
blog-20131007.tar.bz2
blog-20131104.tar.bz2
blog-20131202.tar.bz2
blog-20140106.tar.bz2
blog-20140203.tar.bz2
blog-20140303.tar.bz2
blog-20140407.tar.bz2
blog-20140505.tar.bz2
blog-20140602.tar.bz2
blog-20140707.tar.bz2
blog-20140728.tar.bz2
blog-20140804.tar.bz2
blog-20140811.tar.bz2
blog-20140816.tar.bz2
blog-20140817.tar.bz2
blog-20140818.tar.bz2
blog-20140819.tar.bz2
blog-20140820.tar.bz2
blog-20140821.tar.bz2
blog-20140822.tar.bz2
Run Code Online (Sandbox Code Playgroud) 当我将快照和 RAID 与 btrfs 一起使用时,我能想到的备份的两个主要原因似乎得到了照顾。(这里的 RAID,我指的是 RAID1 或 10)
所以作为现场备份解决方案,这似乎工作得很好,它甚至不需要单独的数据存储设备!
但是,我听说 RAID 和快照都不是正确的备份,所以我想知道我是否遗漏了什么。
除了 btrfs 还不是一项成熟的技术,你能想到我遗漏了什么吗?或者我的想法是否正确,这是一个有效的现场备份解决方案?
我被要求使用 Symantec Backup Exec 设置一个新的备份服务器,该服务器存储到硬盘而不是磁带,因为备份大小超过了磁带容量。
我想知道它是否真的有意义,或者备份服务器运行任何类型的 RAID 是否有任何优势,因为它是“备份”?
对我来说,好处并不足以证明增加的成本是合理的。
我有兴趣看看其他人的想法。
谢谢!
当对磁盘的 SMART 检查报告坏扇区时,重要的是能够识别具有坏扇区的文件 - 并从备份中恢复它。下面,我展示了我是如何为我的 Linux/ext3 VMWARE 服务器做到这一点的——但有没有人知道这是否可以为 Windows/NTFS 做到这一点?
以下是我为 Linux/ext3 所做的:我首先要求驱动器进行硬件表面扫描(低于操作系统级别,使用驱动器上的 SMART 电路):
vserver:~# smartctl -t long /dev/sdc
Run Code Online (Sandbox Code Playgroud)
我看了结果:
vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 1
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 9
...
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed: read failure 90% 27679 591363172
Run Code Online (Sandbox Code Playgroud)
因此,一个扇区已经被标记为坏,9 个被标记为从“暂存”扇区空间替换。更重要的是,第一个不可读的逻辑块地址 (LBA) 是 591363172。
我找到了这个数字“转换”为的分区(以及其中的偏移量):
vserver:~# fdisk -lu /dev/sdc
Device Boot Start End Blocks Id System …Run Code Online (Sandbox Code Playgroud) backup ×10
linux ×2
postgresql ×2
raid ×2
storage ×2
bad-blocks ×1
bash ×1
btrfs ×1
duplicity ×1
ext3 ×1
hard-drive ×1
lvm ×1
ntfs ×1
snapshot ×1
sql-server ×1
tape ×1
xen ×1