aws 在 hvm 虚拟化中附加 ebs volume 和 chef

aws attach ebs volume with chef in hvm virtualization

我有一个 Chef 食谱,它正在尝试创建和附加 EBS 卷,但一直失败。它在我以前的所有 AMI 上运行良好,带有 paravirtual 虚拟化类型。但是当我尝试切换并使用 hvm 虚拟化时,它失败了,并告诉我挂载点已经在使用中。但是好像不是。

我对 create/attach 卷的配方是从该资源中紧密复制的,作者在其中创建了一个 EBS 卷。 http://clarkdave.net/2013/04/managing-ebs-volumes-with-chef/#creating-the-ebs-volumes

================================================================================
Error executing action `attach` on resource 'aws_ebs_volume[application_ebs_volume]'
================================================================================

Aws::EC2::Errors::InvalidParameterValue                                      
---------------------------------------                                      
Invalid value '/dev/sdb' for unixDevice. Attachment point /dev/sdb is already in use

Cookbook Trace:                                                              
---------------                                                              
/var/chef/cache/cookbooks/aws/providers/ebs_volume.rb:212:in `attach_volume' 
/var/chef/cache/cookbooks/aws/providers/ebs_volume.rb:70:in `block (2 levels) in class_from_file'
/var/chef/cache/cookbooks/aws/providers/ebs_volume.rb:68:in `block in class_from_file'

Resource Declaration:                                                        
---------------------                                                        
# In /var/chef/cache/cookbooks/company-aws/recipes/ebs.rb                    

 23: aws_ebs_volume "application_ebs_volume" do                              
 24:     aws_access_key aws['aws_access_key_id']                             
 25:     aws_secret_access_key aws['aws_secret_access_key']                  
 26:     description node['companyaws']['ebs']['name']                       
 27:     size node['companyaws']['ebs']['size']                              
 28:     device device_id.gsub('xvd', 'sd') #aws uses sdx instead of xvdx    
 29:     action [ :create, :attach ]                                         
 30: end                                                                     
 31:                                                                         

Compiled Resource:                                                           
------------------                                                           
# Declared in /var/chef/cache/cookbooks/company-aws/recipes/ebs.rb:23:in `from_file'

aws_ebs_volume("application_ebs_volume") do                                  
  action [:create, :attach]                                                  
  updated true                                                               
  retries 0                                                                  
  retry_delay 2                                                              
  default_guard_interpreter :default                                         
  declared_type :aws_ebs_volume                                              
  cookbook_name "company-aws"                                                
  recipe_name "ebs"                                                          
  aws_access_key "XXXXXXXXXXXXXXXXXXXX"                                      
  aws_secret_access_key "YYYYYYYYYYYYYYYYYYYYYYYYYYYYY/YYYYYYYYYY"           
  description "chef-test"                                                    
  size 50                                                                    
  device "/dev/sdb"                                                          
  timeout 180                                                                
  volume_type "standard"                                                     
  piops 0                                                                    
end

我已尝试验证挂载点不存在

user@chef-test:~$ df -h                                                      
Filesystem      Size  Used Avail Use% Mounted on                             
/dev/xvda1      9.8G  1.2G  8.1G  13% /                                      
none            4.0K     0  4.0K   0% /sys/fs/cgroup                         
udev            996M   12K  996M   1% /dev                                   
tmpfs           201M  340K  200M   1% /run                                   
none            5.0M     0  5.0M   0% /run/lock                              
none           1001M     0 1001M   0% /run/shm                               
none            100M     0  100M   0% /run/user                              

user@chef-test:~$ cat /proc/partitions                                       
major minor  #blocks  name                                                   

 202        0   10485760 xvda                                                
 202        1   10474380 xvda1                                               

user@chef-test:~$ ls /dev/xvd*                                               
/dev/xvda  /dev/xvda1

user@chef-test:~$ cat /etc/fstab                                             
LABEL=cloudimg-rootfs   /    ext4   defaults,discard    0 0  

user@chef-test:~$ sudo mount                                                 
[sudo] password for user:                                                    
/dev/xvda1 on / type ext4 (rw,discard)                                       
proc on /proc type proc (rw,noexec,nosuid,nodev)                             
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)                            
none on /sys/fs/cgroup type tmpfs (rw)                                       
none on /sys/fs/fuse/connections type fusectl (rw)                           
none on /sys/kernel/debug type debugfs (rw)                                  
none on /sys/kernel/security type securityfs (rw)                            
udev on /dev type devtmpfs (rw,mode=0755)                                    
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)            
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)               
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)           
none on /run/shm type tmpfs (rw,nosuid,nodev)                                
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)                                      
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)

@adam_Ocsvari 方法正确。当我将我的设备从挂载 /dev/sdb 切换到 /dev/sdf 时,一切立即正常。