블록 blob, 추가 blob 및 페이지 blob 이해Understanding block blobs, append blobs, and page blobs

저장소 서비스는 블록 blob, 추가 blob페이지 blob의 세 가지 유형의 blob을 제공 합니다.The storage service offers three types of blobs, block blobs, append blobs, and page blobs. Blob를 만들 때 Blob 유형을 지정합니다.You specify the blob type when you create the blob. Blob을 만든 후에는 해당 유형을 변경할 수 없으며, 해당 blob 유형에 적합 한 작업만 사용 하 여 업데이트할 수 있습니다. 즉, 블록 blob에 블록 또는 블록 목록을 쓰고, 추가 blob에 블록을 추가 하 고, 페이지 blob에 페이지를 기록 합니다.Once the blob has been created, its type cannot be changed, and it can be updated only by using operations appropriate for that blob type, i.e., writing a block or list of blocks to a block blob, appending blocks to a append blob, and writing pages to a page blob.

모든 Blob는 커밋된 변경 사항을 즉시 반영합니다.All blobs reflect committed changes immediately. Blob는 각 버전별로 ETag라고 하는 전용 태그를 사용하므로 이 태그를 사용하여 액세스하면 Blob의 특정 인스턴스만 변경할 수 있습니다.Each version of the blob has a unique tag, called an ETag, that you can use with access conditions to assure you only change a specific instance of the blob.

모든 Blob는 배타적인 쓰기 액세스를 위해 임대할 수 있습니다.Any blob can be leased for exclusive write access. Blob를 임대할 경우 현재 임대 ID가 포함된 호출만 해당 Blob 또는 블록(블록 Blob의 경우)을 수정할 수 있습니다.When a blob is leased, only calls that include the current lease ID can modify the blob or (for block blobs) its blocks.

모든 Blob는 스냅숏으로 복제할 수 있습니다.Any blob can be duplicated in a snapshot. 스냅숏에 대 한 자세한 내용은 Blob의 스냅숏 만들기를 참조 하세요.For information about snapshots, see Creating a Snapshot of a Blob.

참고

Azure 저장소 에뮬레이터의 blob은 최대 크기인 2 GiB으로 제한 됩니다.Blobs in the Azure storage emulator are limited to a maximum size of 2 GiB.

블록 blob 정보About block blobs

블록 blob은 많은 양의 데이터를 효율적으로 업로드 하는 데 최적화 되어 있습니다.Block blobs are optimized for uploading large amounts of data efficiently. 블록 Blob는 블록으로 구성되며, 각 블록은 블록 ID로 식별됩니다.Block blobs are comprised of blocks, each of which is identified by a block ID. 블록 blob은 최대 5만 블록을 포함할 수 있습니다.A block blob can include up to 50,000 blocks. 블록 blob의 각 블록은 사용 하는 서비스 버전에 허용 되는 최대 크기까지 다양 한 크기를 가질 수 있습니다.Each block in a block blob can be a different size, up to the maximum size permitted for the service version in use. 블록 blob을 만들거나 수정 하려면 Put block 작업을 통해 블록 집합을 작성 한 다음 블록 목록 배치 작업을 사용 하 여 블록을 blob에 커밋합니다.To create or modify a block blob, write a set of blocks via the Put Block operation and then commit the blocks to a blob with the Put Block List operation.

특정 크기 (서비스 버전에 의해 결정 됨) 보다 작은 blob은 Put Blob을 통해 단일 쓰기 작업으로 전체적으로 업로드할 수 있습니다.Blobs that are less than a certain size (determined by service version) can be uploaded in their entirety with a single write operation via Put Blob.

다음 표에서는 서비스 버전에서 허용 하는 최대 블록 및 blob 크기를 설명 합니다.The following table describes the maximum block and blob sizes permitted by service version.

서비스 버전Service version 최대 블록 크기 (Put 블록을 통해)Maximum block size (via Put Block) 최대 blob 크기 (Put 블록 목록을 통해)Maximum blob size (via Put Block List) 단일 쓰기 작업을 통한 최대 blob 크기 (Put Blob 통해)Maximum blob size via single write operation (via Put Blob)
버전 2019-12-12 이상Version 2019-12-12 and later 4000 MiB (미리 보기)4000 MiB (preview) 약 190.7 TiB (4000 MiB X 5만 블록) (미리 보기)Approximately 190.7 TiB (4000 MiB X 50,000 blocks) (preview) 5000 MiB (미리 보기)5000 MiB (preview)
버전 2016-05-31 ~ 2019-07-07Version 2016-05-31 through version 2019-07-07 100MiB100 MiB 약 4.75 TiB (100 MiB X 5만 블록)Approximately 4.75 TiB (100 MiB X 50,000 blocks) 256 MiB256 MiB
2016-05-31 이전 버전Versions prior to 2016-05-31 4MiB4 MiB 약 195 GiB (MiB X 5만 블록 4 개)Approximately 195 GiB (4 MiB X 50,000 blocks) 64 MiB64 MiB

저장소 클라이언트는 Azure Storage 클라이언트 라이브러리에서 Blobrequestoptions 개체의 SingleBlobUploadThresholdInBytes 속성을 사용 하 여 128 MiB 최대 단일 blob 업로드로 기본 설정 됩니다.Storage clients default to a 128 MiB maximum single blob upload, settable in the Azure Storage client library for .NET version 11 by using the SingleBlobUploadThresholdInBytes property of the BlobRequestOptions object. 이 속성의 값보다 큰 블록 Blob를 업로드할 경우 저장소 클라이언트는 파일을 여러 블록으로 나눕니다.When a block blob upload is larger than the value in this property, storage clients break the file into blocks. Blobrequestoptions 개체의 대해 paralleloperationthreadcount 속성을 사용 하 여 요청 별로 블록을 동시에 업로드 하는 데 사용 되는 스레드 수를 설정할 수 있습니다.You can set the number of threads used to upload the blocks in parallel on a per-request basis using the ParallelOperationThreadCount property of the BlobRequestOptions object.

저장소 계정의 Blob에 블록을 업로드할 경우 지정된 블록 Blob와 연결되지만 새 블록 ID를 포함하여 블록의 목록을 커밋할 때까지는 이 Blob에 포함되지 않습니다.When you upload a block to a blob in your storage account, it is associated with the specified block blob, but it does not become part of the blob until you commit a list of blocks that includes the new block's ID. 구체적으로 커밋 또는 삭제될 때까지 새 블록은 커밋되지 않은 상태로 남아 있습니다.New blocks remain in an uncommitted state until they are specifically committed or discarded. 최대 10만 개의 커밋되지 않은 블록이 있을 수 있습니다.There can be a maximum of 100,000 uncommitted blocks. 블록 쓰기 작업은 기존 Blob의 마지막 수정 시간을 업데이트하지 않습니다.Writing a block does not update the last modified time of an existing blob.

블록 Blob는 네트워크를 통해 대용량 파일을 관리하는 기능을 제공합니다.Block blobs include features that help you manage large files over networks. 블록 Blob를 사용하면 동시에 여러 블록을 업로드하여 업로드 시간을 줄일 수 있습니다.With a block blob, you can upload multiple blocks in parallel to decrease upload time. 각 블록은 MD5 해시를 포함하여 전송을 확인할 수 있으므로 업로드 진행 과정을 추적하여 필요할 경우 블록을 재전송할 수 있습니다.Each block can include an MD5 hash to verify the transfer, so you can track upload progress and re-send blocks as needed. 원하는 순서대로 블록을 업로드할 수 있으며 최종 블록 목록 커밋 단계에서 순서를 정할 수 있습니다.You can upload blocks in any order, and determine their sequence in the final block list commitment step. 또한 새 블록을 업로드하여 동일한 블록 ID의 커밋되지 않은 기존 블록을 대체할 수 있습니다.You can also upload a new block to replace an existing uncommitted block of the same block ID. 1주 내에 Blob로 블록을 커밋하지 않으면 삭제됩니다.You have one week to commit blocks to a blob before they are discarded. 블록 목록 커밋 작업이 발생했지만 포함되지 않아 커밋되지 않은 모든 블록 또한 삭제됩니다.All uncommitted blocks are also discarded when a block list commitment operation occurs but does not include them.

기존 블록을 삽입, 교체 또는 삭제하여 기존 블록 Blob를 수정할 수 있습니다.You can modify an existing block blob by inserting, replacing, or deleting existing blocks. 변경된 블록을 업로드한 후 한 번의 커밋 작업으로 유지하려는 기존 블록과 함께 새 블록을 커밋하여 새 버전의 Blob를 커밋할 수 있습니다.After uploading the block or blocks that have changed, you can commit a new version of the blob by committing the new blocks with the existing blocks you want to keep using a single commit operation. 커밋된 Blob 내 두 개의 서로 다른 위치에 동일한 범위의 바이트를 삽입하기 위해 한 번의 커밋 작업으로 두 곳에 동일한 블록을 커밋할 수 있습니다.To insert the same range of bytes in two different locations of the committed blob, you can commit the same block in two places within the same commit operation. 커밋 작업 시 블록이 발견되지 않을 경우 전체 커밋 작업은 실패하고 오류 메시지가 반환되며 Blob는 수정되지 않습니다.For any commit operation, if any block is not found, the entire commitment operation fails with an error, and the blob is not modified. 모든 블록 약정은 blob의 기존 속성 및 메타 데이터를 덮어쓰고 커밋되지 않은 모든 블록을 삭제 합니다.Any block commitment overwrites the blob's existing properties and metadata, and discards all uncommitted blocks.

블록 ID는 한 Blob 내 동일한 길이의 문자열입니다.Block IDs are strings of equal length within a blob. 블록 클라이언트 코드는 일반적으로 Base-64 인코딩을 사용하여 동일한 길이의 문자열로 정규화합니다.Block client code usually uses base-64 encoding to normalize strings into equal lengths. Base-64 인코딩을 사용할 때 사전 인코딩된 문자열이 64바이트 이하여야 합니다.When using base-64 encoding, the pre-encoded string must be 64 bytes or less. 블록 ID 값은 다른 Blob에 복제할 수 있습니다.Block ID values can be duplicated in different blobs.

존재하지 않는 Blob에 블록을 쓰면 0바이트 길이로 새 블록 Blob가 생성됩니다.If you write a block for a blob that does not exist, a new block blob is created, with a length of zero bytes. 이 Blob는 커밋되지 않은 Blob가 포함된 Blob 목록에 표시됩니다.This blob will appear in blob lists that include uncommitted blobs. 이 blob에 대 한 블록을 커밋하지 않으면 마지막으로 성공한 블록 업로드 후 1 주일 후에 커밋되지 않은 블록이 삭제 됩니다.If you don't commit any block to this blob, it and its uncommitted blocks will be discarded one week after the last successful block upload. 또한 블록 업로드 후 커밋하는 2단계의 프로세스가 아닌 1단계 만에 동일한 이름의 새 Blob를 생성할 때 커밋되지 않은 블록도 모두 삭제됩니다.All uncommitted blocks are also discarded when a new blob of the same name is created using a single step (rather than the two-step block upload-then-commit process).

페이지 blob 정보About page blobs

페이지 Blob는 512바이트 페이지의 컬렉션으로 임의 읽기 및 쓰기 작업에 최적화되어 있습니다.Page blobs are a collection of 512-byte pages optimized for random read and write operations. 페이지 Blob를 만들려면 페이지 Blob를 초기화한 다음 페이지 Blob의 최대 크기를 지정합니다.To create a page blob, you initialize the page blob and specify the maximum size the page blob will grow. 페이지 Blob의 콘텐츠를 추가 또는 업데이트하려면 512바이트 페이지 경계와 일치하는 오프셋과 범위를 지정하여 하나 또는 여러 페이지를 작성합니다.To add or update the contents of a page blob, you write a page or pages by specifying an offset and a range that align to 512-byte page boundaries. 페이지 blob에 대 한 쓰기는 한 페이지, 일부 페이지 또는 페이지 blob의 MiB로만 덮어쓸 수 있습니다.A write to a page blob can overwrite just one page, some pages, or up to 4 MiB of the page blob. 페이지 Blob 쓰기는 실시간으로 이루어지며 즉시 Blob에 커밋됩니다.Writes to page blobs happen in-place and are immediately committed to the blob. 페이지 blob의 최대 크기는 8 TiB입니다.The maximum size for a page blob is 8 TiB.

Azure 가상 머신 디스크는 페이지 blob에 의해 지원 됩니다.Azure virtual machine disks are backed by page blobs. Azure는 프리미엄 및 표준의 두 가지 내구성 있는 디스크 저장소를 제공 합니다.Azure offers two types of durable disk storage: premium and standard. 페이지 blob에 대 한 Premium storage는 일관 된 고성능 및 짧은 대기 시간을 요구 하는 Azure 가상 머신 워크 로드 용으로 설계 되었습니다.Premium storage for page blobs is designed for Azure virtual machine workloads that require consistent high performance and low latency. 자세한 내용은 IaaS vm의 디스크 유형 선택문서의 프리미엄 반도체 드라이브 (SSD) 섹션을 참조 하세요.For detailed information, see the Premium solid-state drives (SSD) section of the article Select a disk type for IaaS VMs. 페이지 blob에 대 한 premium storage의 확장성 목표에 대 한 자세한 내용은 Azure Storage 확장성 및 성능 목표를 참조 하세요.For information about the scalability targets for premium storage for page blobs, see Azure Storage Scalability and Performance Targets.

추가 blob 정보About append blobs

추가 blob은 블록으로 구성 되며 추가 작업에 최적화 되어 있습니다.An append blob is comprised of blocks and is optimized for append operations. 추가 blob을 수정 하는 경우 블록은 추가 블록 작업을 통해 blob의 끝에만 추가 됩니다.When you modify an append blob, blocks are added to the end of the blob only, via the Append Block operation. 기존 블록의 업데이트 또는 삭제는 지원 되지 않습니다.Updating or deleting of existing blocks is not supported. 블록 blob과 달리 추가 blob은 해당 블록 Id를 노출 하지 않습니다.Unlike a block blob, an append blob does not expose its block IDs.

추가 blob의 각 블록의 크기는 최대 4 MiB 이며 추가 blob은 최대 5만 블록을 포함할 수 있습니다.Each block in an append blob can be a different size, up to a maximum of 4 MiB, and an append blob can include up to 50,000 blocks. 따라서 추가 blob의 최대 크기는 195 GiB (MiB X 5만 블록 4 개) 보다 약간 더 큰 것입니다.The maximum size of an append blob is therefore slightly more than 195 GiB (4 MiB X 50,000 blocks).

참고 항목See Also