임시 구성 데이터베이스 공간 관리
임시 데이터베이스 인스턴스에 대한 옵션을 구성하여 데이터베이스가 사용하는 공간의 양을 보다 효과적으로 관리할 수 있습니다.
Junos 디바이스는 모든 커밋과 함께 사용 후 삭제 구성 데이터베이스 개체 버전을 유지합니다. 따라서 임시 데이터베이스에 대한 변경(추가, 수정 또는 삭제)은 데이터베이스의 크기를 증가시킵니다. 따라서 데이터베이스 크기는 시간이 지남에 따라 증가하기만 합니다. 임시 구성의 크기와 데이터베이스 변경 내용에 따라 데이터베이스는 많은 양의 디스크 공간을 사용하고 조각화될 수 있으며 잠재적으로 최대 데이터베이스 크기까지 실행될 수 있습니다. 다양한 옵션을 구성하여 임시 데이터베이스 인스턴스가 사용하는 공간을 관리할 수 있습니다.
지원되는 릴리스에서 Junos 디바이스는 기본적으로 사용 후 삭제 인스턴스를 커밋할 때 순환 버전 관리를 수행합니다. 순환 버전 관리는 이전 데이터베이스 버전에서 삭제된 개체가 차지하는 공간을 회수합니다. 사용 후 삭제 데이터베이스가 차지하는 공간을 관리하려면 디바이스를 다음과 같이 구성할 수 있습니다.
-
작업에 맞게 순환 버전 관리를 조정합니다.
-
특정 조건을 충족하는 경우 임시 데이터베이스의 크기를 조정합니다.
순환 버전 관리 및 크기 조정의 이점
-
주어진 환경에 필요한 임시 구성 데이터베이스 공간을 보다 효율적으로 관리합니다.
-
성능 향상을 위해 데이터베이스 조각화를 줄입니다.
-
임시 구성 데이터베이스가 최대 데이터베이스 크기로 실행되지 않도록 합니다.
순환 버전 관리 이해
Junos 디바이스는 사용 후 삭제 데이터베이스 개체의 버전 관리를 유지하므로 데이터베이스는 삭제된 개체도 보존하고 저장합니다. 삭제의 특징은 다음과 같습니다.
-
구성을 명시적으로 삭제합니다.
-
구성 속성의 값 변경.
-
로드 업데이트 작업 중에 요소를 재정렬합니다.
순환 버전 관리는 이전 버전의 데이터베이스에서 삭제된 개체가 차지하는 공간을 회수합니다. 순환 버전 값은 커밋 작업 중 시스템이 삭제된 개체를 회수하는 임시 데이터베이스 버전을 결정합니다. 각 임시 데이터베이스 인스턴스에 대한 기본 순환 버전 값은 10입니다. 따라서 순환 버전 관리를 지원하는 디바이스에서 시스템은 기본적으로 각 커밋과 함께 삭제된 구성 개체가 차지하는 공간을 회수합니다. 인스턴스별로 설정을 수정할 수 있습니다. 순환 버전 관리를 비활성화하려면 순환 버전 값을 0으로 설정합니다.
예를 들어, 기본 순환 버전 값 10을 사용하는 경우:
-
11번째 커밋(버전 11) 이후 디바이스는 버전 1에서 삭제된 개체가 점유하는 공간을 회수합니다.
-
12번째 커밋(버전 12) 이후 디바이스는 버전 2에서 삭제된 개체가 점유하는 공간을 회수합니다.
-
13번째 커밋(버전 13) 이후 디바이스는 버전 3에서 삭제된 개체가 점유했던 공간을 회수합니다.
이 프로세스는 이후의 각 커밋 작업에서 계속됩니다. 앞의 예에서 설명한 것처럼, 현재 커밋 작업 중 시스템이 삭제된 객체를 회수하는 버전은 다음과 같습니다.
version to reclaim = current version - cyclic version
시스템에서 데이터베이스 크기를 조정할 때 시스템은 활성 구성 개체만 유지하고 각 개체의 버전을 최신 버전으로 재설정합니다. 그 결과, 시스템은 순환 버전 값과 동일한 커밋 작업을 실행할 때까지 삭제된 객체를 다시 회수하지 않습니다.
이전 릴리스와 순환 버전 관리를 사용하지 않는 기기에서 임시 데이터베이스 기본 동작은 허용 가능한 최대 버전에 도달하면 데이터베이스를 제거하는 것입니다. 제거 작업은 삭제된 개체가 사용하는 공간을 회수하지만 모든 프로세스가 전체 구성을 읽어야 합니다. 데이터베이스 제거 작업에는 다음이 포함됩니다.
-
새 데이터베이스 만들기.
-
현재 데이터베이스의 활성 구성 개체만 새 데이터베이스로 복사합니다.
-
새 데이터베이스의 모든 활성 구성 개체의 버전을 버전 1로 설정합니다.
임시 데이터베이스 크기 조정 이해
순환 버전 관리가 사용 가능하고 요소 삭제 또는 순서 변경과 관련된 데이터베이스를 자주 변경하는 경우 임시 데이터베이스의 크기를 조정해야 할 수 있습니다. 순환 버전 관리를 지원하는 디바이스에서 시스템은 커밋 작업 중 삭제된 개체가 차지하는 공간을 자동으로 회수합니다. 그러나 시스템은 데이터베이스를 업데이트할 때 새 구성 개체에 대해 확보된 공간을 재할당하거나 재할당하지 않을 수 있습니다. 시스템이 공간을 재할당하지 않으면 시간이 지남에 따라 데이터베이스가 조각화될 수 있습니다. 임시 데이터베이스의 크기를 조정하면 삭제된 모든 개체가 차지하는 공간이 회수되고 데이터베이스 조각 모음이 수행되어 성능이 향상될 수 있습니다.
데이터베이스 크기 조정 작업에는 다음이 포함됩니다.
-
새 데이터베이스 만들기.
-
현재 데이터베이스의 활성 구성 개체만 새 데이터베이스로 복사합니다.
-
새 데이터베이스의 모든 활성 구성 개체의 버전을 최신 버전으로 설정합니다.
정적 구성 데이터베이스와 마찬가지로 Junos 디바이스를 구성하여 사용 후 삭제 구성 데이터베이스의 크기를 조정할 수 있습니다. 데이터베이스 크기 조정을 구성한 후, 데이터베이스의 공간이 지정된 임계값을 초과하면 Junos 디바이스는 커밋 작업 중에 임시 데이터베이스의 크기를 조정합니다. 각 임시 인스턴스에 대한 임계값을 수정할 수 있습니다.
시스템은 데이터베이스 크기가 다음 구성문 모두에 대한 기준을 충족할 때 데이터베이스 크기를 조정합니다.
-
database-size-diff- 데이터베이스 크기와 실제 사용량 간의 최소 차이입니다. 기본값은 100MB입니다. -
database-size-on-disk- 디스크의 최소 구성 데이터베이스 크기입니다. 기본값은 450MB입니다.
예를 들어, 기본값을 사용하도록 디바이스를 구성한 경우 디스크의 데이터베이스 크기가 450MB를 초과 하고 데이터베이스 크기가 실제 데이터베이스 사용량보다 100MB 크면 시스템에서 데이터베이스 크기를 조정합니다.
데이터베이스 크기 조정 구성에 대한 자세한 내용은 Resize an Ephemeral Database Instance을 참조하십시오.
show system configuration database usage 명령을 사용하여 데이터베이스의 디스크 공간 사용량을 표시합니다. 이 명령은 디스크의 현재 데이터베이스 크기, 실제 데이터베이스 사용량 및 데이터베이스의 최대 크기를 표시합니다.
user@host> show system configuration database usage ephemeral-instance default Maximum size of the database: 692.49 MB Current database size on disk: 1.50 MB Actual database usage: 1.49 MB Available database space: 691.01 MB
순환 버전 관리 구성
Junos 디바이스는 기본적으로 순환 버전 값 10을 사용합니다. 순환 버전 값을 구성할 때, 요소를 재정렬하거나 많은 개체 또는 속성을 삭제하는 확장된 구성에 대해 커밋 작업을 자주 수행하는 경우 더 작은 값을 사용하는 것이 가장 좋습니다. 값이 작을수록 디바이스가 더 적은 버전의 데이터베이스에 대해 삭제된 개체를 저장하므로 전체 디스크 공간을 덜 사용합니다. 이러한 경우 값 2 또는 3을 사용하는 것이 좋습니다. 그렇지 않으면 기본값 10과 같은 더 큰 순환 버전 값을 사용할 수 있습니다.
Junos 프로세스가 구성된 순환 버전 값보다 더 많은 커밋을 읽지 못할 경우, 버전 간 델타를 더 이상 사용할 수 없으므로 전체 구성을 읽어야 합니다. 이 효과는 더 작은 순환 버전 값을 구성하는 경우 더 자주 발생할 수 있습니다.
커밋 작업 중 삭제된 개체가 점유하는 공간을 디바이스가 회수하는 데 사용하는 순환 버전 값을 지정하려면 다음을 수행합니다.
임시 데이터베이스 인스턴스 크기 조정
데이터베이스 크기를 조정하도록 디바이스를 구성한 후, 지정된 기준을 충족하면 해당 데이터베이스에 대한 커밋 작업 후 디바이스가 데이터베이스 크기를 조정합니다. 데이터베이스 크기를 성공적으로 조정한 후 디바이스는 다음 메시지를 나타냅니다.
Database resize completed
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인하세요.