diff --git a/weed/storage/erasure_coding/ec_shard.go b/weed/storage/erasure_coding/ec_shard.go index 0a7f4d09a..e55a9f676 100644 --- a/weed/storage/erasure_coding/ec_shard.go +++ b/weed/storage/erasure_coding/ec_shard.go @@ -45,11 +45,19 @@ func NewEcVolumeShard(diskType types.DiskType, dirname string, collection string } v.ecdFileSize = ecdFi.Size() - stats.VolumeServerVolumeGauge.WithLabelValues(v.Collection, "ec_shards").Inc() + v.Mount() return } +func (shard *EcVolumeShard) Mount() { + stats.VolumeServerVolumeGauge.WithLabelValues(shard.Collection, "ec_shards").Inc() +} + +func (shard *EcVolumeShard) Unmount() { + stats.VolumeServerVolumeGauge.WithLabelValues(shard.Collection, "ec_shards").Dec() +} + func (shard *EcVolumeShard) Size() int64 { return shard.ecdFileSize } @@ -88,8 +96,8 @@ func (shard *EcVolumeShard) Close() { } func (shard *EcVolumeShard) Destroy() { + shard.Unmount() os.Remove(shard.FileName() + ToExt(int(shard.ShardId))) - stats.VolumeServerVolumeGauge.WithLabelValues(shard.Collection, "ec_shards").Dec() } func (shard *EcVolumeShard) ReadAt(buf []byte, offset int64) (int, error) { diff --git a/weed/storage/erasure_coding/ec_volume.go b/weed/storage/erasure_coding/ec_volume.go index f0b662752..b3744807a 100644 --- a/weed/storage/erasure_coding/ec_volume.go +++ b/weed/storage/erasure_coding/ec_volume.go @@ -111,7 +111,7 @@ func (ev *EcVolume) DeleteEcVolumeShard(shardId ShardId) (ecVolumeShard *EcVolum } ecVolumeShard = ev.Shards[foundPosition] - + ecVolumeShard.Unmount() ev.Shards = append(ev.Shards[:foundPosition], ev.Shards[foundPosition+1:]...) return ecVolumeShard, true }