Bacula - 디스크 백업 GFS 구성표 "구멍"

Bacula - 디스크 백업 GFS 구성표 "구멍"

하드 드라이브에 배큘라를 사용하여 GFS 방식을 구현하는 것에 대한 질문이 있습니다(데몬은 이미 잘 작동합니다).

내가 이루고 싶은 것:

반년마다 최소 12개월 동안 액세스할 수 있는 전체 백업을 원합니다. -> 두 번째 전체 백업이 첫 번째 전체 백업을 덮어쓰지 않도록 백업을 12개월보다 약간 더 길게 유지해야 합니다. 이는 적어도 3번의 전체 백업이 있을 것임을 의미합니다(저는 18개월을 선택했습니다). 며칠, 몇 달 동안 이런 식으로 계속됩니다. 간단한 GFS 방식.

Schedule{
  Name = "GGFSCycle"
  Enabled = yes

  # DailyCycle - the volume is kept for 14 days
  Run = Level=Incremental Pool=DailyPool FullPool=HalfAnnualPool Priority=10 tuesday-sunday at 03:00

  # WeeklyCycle - the volume is kept for 5 weeks
  Run = Level=Incremental Pool=WeeklyPool FullPool=HalfAnnualPool Priority=11 monday at 03:00
  
  # MonthlyCycle - the volume is kept for 7 months
  Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=12 february-june 1 at 03:00
  Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=12 august-december 1 at 03:00

  # HalfAnnualCycle - the data is kept for 18 months
  Run = Level=Full Pool=HalfAnnualPool Priority=13 january 1 at 03:00
  Run = Level=Full Pool=HalfAnnualPool Priority=13 july 1 at 03:00

}

Pool {    
  Name = DailyPool
  Pool Type = Backup
  Storage = backup-server-sd
  Label Format = "DailyVol_"
  Volume Use Duration = 23 hours
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 14 days         
  Maximum Volume Bytes = 50M          # Limit Volume size to something reasonable
  Maximum Volumes = 1000              # Limit number of Volumes in Pool
  # -> max 50G
}

Pool {
  Name = WeeklyPool
  Pool Type = Backup
  Storage = backup-server-sd
  Label Format = "WeeklyVol_"
  Volume Use Duration = 23 hours
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 5 weeks
  Maximum Volume Bytes = 500M 
  Maximum Volumes = 80
  # -> max 70G
}

Pool {
  Name = MonthlyPool
  Pool Type = Backup
  Storage = backup-server-sd
  Label Format = "MonthlyVol_"
  Volume Use Duration = 2 days
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 7 months
  Maximum Volume Bytes = 5G
  Maximum Volumes = 80
  # -> max 170G
}
 
Pool {
  Name = HalfAnnualPool
  Pool Type = Backup
  Label Format = "HalfannualVol_"
  Storage = backup-server-sd
  Volume Use Duration = 3 days
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 18 months #1,5 years
  Maximum Volume Bytes = 35G
  Maximum Volumes = 20
  # -> max 700G
}

내가 본 문제:

증분 백업은 항상 마지막 증분, 차등 또는 전체 백업을 참조하고 그 이후에 변경된 파일만 저장한다는 것입니다. 내 계획에는 매일 및 매주라는 두 가지 "다른" 증분 백업이 있습니다. 주간은 항상 전날에 온 일일을 참조합니다. 그렇죠? 주간 파일을 4주 이상(5주 선택) 보관하고 일일 파일을 10일 이상(14일 선택) 보관하면 일일 파일은 14일 후에 삭제되지만 월별 파일은 계속 참조합니다. . 그럼 "구멍"이 생길까요?

주간 증분 백업은 주간 백업(레벨0)만 참조하고 일일 증분 백업은 일일 백업(레벨1)만을 참조한다고 말할 수 있는 것처럼 증분 백업의 여러 "레벨"을 갖는 것이 가능한지 알아냈습니다. ) 문제는 사라질 것입니다. 전체 백업을 짧게 유지할 때도 동일한 문제가 발생합니다. 예를 들어 전체 백업이 기존 백업을 덮어쓰는 경우 차등 백업이 참조할 수 있는 전체 백업은 남지 않게 되며 해당 지점까지 만든 모든 백업이 손실됩니다.

내가 찾은 것:

인터넷을 뒤지다가 발견한바큘라 문서의 장: 다음과 같이 명시되어 있습니다. "이제 이러한 다양한 종류의 저장은 서로 다른 기간 동안 유효한 상태로 유지되어야 하므로 이를 수행하는 가장 간단한 방법(그리고 아마도 유일한 방법)은 각 백업 유형에 대해 별도의 풀을 갖는 것입니다."

내 질문:

  1. 이는 기본적으로 바큘라 문서의 장에 있는 단일 전체, 차이 및 잉크 풀 외에 다른 해결책이 없음을 의미합니다. 이 올바른지?
  2. 잘못된 경우 두 개의 서로 다른 증분 풀을 사용하여 어떻게 목표를 달성할 수 있습니까?

나는 또한 bacula-documentation에서 기본 직업에 대해 읽었습니다. 그것은 옳은 것은 아니지만 올바른 방향으로 가고 있습니다.

시간을 내어 여기까지 읽어주셔서 정말 감사드립니다.

추신: 저는 영어를 모국어로 사용하는 사람이 아니며 실수를 하면 죄송합니다. 정말로 당신을 화나게 하는 것이 있다면 내 영어 실력을 향상시키기 위해 당신의 의견을 듣고 싶습니다.

감사합니다.

답변1

지금까지 bacula-user-mailinglist의 도움으로 정리했습니다. 단일 작업에 대해 여러 증분 풀을 효과적으로 갖는 것은 불가능합니다. 내 설정을 다음과 같이 변경했습니다.

Schedule{
  Name = "GFSCycle"
  Enabled = yes

  # DailyCycle - the volumes are kept for 40days
  Run = Level=Incremental Pool=DailyPool FullPool=HalfAnnualPool Priority=10 daily at 03:00
  
  # MonthlyCycle - the volumes are kept for 7months
  Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=11 february-june 1 at 03:00
  Run = Level=Differential Pool=MonthlyPool FullPool=HalfAnnualPool Priority=11 august-december 1 at 03:00

  # HalfAnnualCycle - the volumes are kept 12months
  Run = Level=Full Pool=HalfAnnualPool Priority=12 january 1 at 03:00
  Run = Level=Full Pool=HalfAnnualPool Priority=12 july 1 at 03:00


Pool {    
  Name = DailyPool
  Pool Type = Backup
  Storage = backup-server-sd
  Label Format = "DailyVol_"
  Volume Use Duration = 23 hours
  Recycle = yes                       # Bacula can automatically recycle Volumes
  AutoPrune = yes                     # Prune expired volumes
  Volume Retention = 40 days
  Maximum Volume Bytes = 50M          # Limit Volume size to something reasonable
  Maximum Volumes = 3000              # Limit number of Volumes in Pool
  # -> max 150G
}

Pool {
  Name = MonthlyPool
  Pool Type = Backup
  Storage = backup-server-sd
  Label Format = "MonthlyVol_"
  Volume Use Duration = 2 days
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 7 months
  Maximum Volume Bytes = 5G
  Maximum Volumes = 80
  # -> max 170G
}
 
Pool {
  Name = HalfAnnualPool
  Pool Type = Backup
  Label Format = "HalfannualVol_"
  Storage = backup-server-sd
  Volume Use Duration = 3 days
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 12 months
  Maximum Volume Bytes = 35G
  Maximum Volumes = 20
  # -> max 700G 
}

해당 단일 클라이언트에 대한 파일 및 작업 보존은 최대 볼륨 보존으로 설정됩니다.

-> 파일 보존 = 12개월, 작업 보존 = 12개월

편리하게 사용할 수 있는 가상 전체 백업도 있으며 다음에서 자세히 설명합니다. https://www.baculasystems.com/incremental-backup-software/

다시 한 번 제가 이 문제를 해결하는 데 도움을 준 bacula-user-mailinglist의 모든 분들께 진심으로 감사드립니다.

관련 정보